자바 day 027 집합의 링크 드 리스트 와 set

java day 027 LinkedList 와 Set
1. LinkedList 개요
LinkedList 의 바 텀 저장 데이터 구 조 는 양 방향 링크 구조 이다.
2. LinkedList 가 알 아야 할 방법
boolean addFirst(E e);
첫 번 째 삽입 법, 표 머리 에 요 소 를 추가 합 니 다.
boolean addLast(E e);
꼬리 삽입 법, 표 끝 에 요 소 를 추가 합 니 다.
E getFirst();
첫 번 째 노드 노드 노드 데이터 가 져 오기
E getLast();
마지막 노드 노드 노드 데이터 가 져 오기
E removeFirst();
첫 번 째 노드 삭제
E removeLast();
마지막 노드 삭제
LInkedList 예제
import java.util.LinkedList;

public class TestLinkedList {
	public static void main(String[] args) {
		
		LinkedList<String> a1 = new LinkedList<String>();
		
		a1.add("  ");
		a1.add("  ");
		a1.add("  ");
		a1.add("  ");
		a1.add("  ");
		System.out.println(a1);
		
		a1.addFirst("  ");
		System.out.println(a1);
		
		a1.addLast("  ");
		System.out.println(a1);
		
		System.out.println(a1.removeFirst());
		System.out.println(a1.removeLast());
		
		System.out.println(a1.getFirst());
		System.out.println(a1.getLast());
		
	}
}
/*
    :
[  ,   ,   ,   ,   ]
[  ,   ,   ,   ,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]
  
  
  
  
*/

3. Set 집합 개요
집합 저장 소 설정:
  • 무질서 하 게 추 가 된 순서 와 저장 이 일치 하지 않 습 니 다!
  • Set 에 저 장 된 데 이 터 를 중복 할 수 없습니다!

  • HashSet
    바 텀 저장 데이터 구 조 는 해시 표 이다.
    TreeSet
    바 텀 저장 데 이 터 는 균형 이 진 트 리 입 니 다.
    HashSet 개요
    HashSet 저장 과정 에서 요 소 를 추가 하 는 hashCode 방법 이 필요 합 니 다. equals 방법 도 관련 될 수 있 습 니 다.
    equals 방법 은 우리 가 피해 야 합 니 다.
    코드 데모:
    import java.util.HashSet;
    
    public class TestHashSet {
    	public static void main(String[] args) {
    		
    		HashSet<String> a1 = new HashSet<String>();
    		
    		a1.add("  ");
    		a1.add("  ");
    		a1.add("  ");
    		a1.add("  ");
    		a1.add("  ");
    		System.out.println(a1);
    		
    	
    		a1.add("  ");
    		System.out.println(a1.size());
    		System.out.println(a1);
    	}
    }
    /*
        :
    [  ,   ,   ,   ,   ]
    5
    [  ,   ,   ,   ,   ]
    */
    

    hashCode 와 equals 방법 캐릭터
  • 요 소 는 몇 개 를 추가 하고 hashCode 방법 은 몇 번 을 실행 합 니까
  • 같은 요 소 를 추가 할 때 equals 방법
  • 을 실행 합 니 다.
    TreeSet 코드 데모
    import java.util.TreeSet;
    
    public class TestTreeSet {
    	public static void main(String[] args) {
    		
    		TreeSet<Integer> a1 = new TreeSet<Integer>();
    		
    		a1.add(24);
    		a1.add(30);
    		a1.add(46);
    		a1.add(100);
    		a1.add(10);
    		a1.add(11);
    		
    		System.out.println(a1);
    	}
    }
    /*
        :
    [10, 11, 24, 30, 46, 100]
    */
    

    주의:
    TreeSet 집합 에 넣 은 대상 은 자 연 스 러 운 순서 나 비교 방식 이 있어 야 합 니 다. 잘못 보고 하지 않 으 면
    비교 방식 완성:
  • 클래스 는 Comparable 인터페이스 에 따라 compare To 방법 Public int compare To (T t) 를 실현 합 니 다.
  • TreeSet 에 플러그 인 을 추가 하고 비교 방식 플러그 인 을 추가 합 니 다. TreeSet 대상 을 만 드 는 과정 에서 Comparator 인터페이스 류 실현 대상 을 입력 하여 compare 방법 Public int compare (T o1, T o2) 를 실현 합 니 다.

  • 예시:
    package com.qfedu.study.Linkedlistandset;
    
    import java.util.Comparator;
    import java.util.TreeSet;
    
    /**
     * Animal   Comparable  ,          
     * @author Arkay
     *
     */
    class Animal implements Comparable<Animal> {
    	
    	int age;
    	String name;
    	
    	public Animal() {}
    	
    	public Animal(int age, String name) {
    		super();
    		this.age = age;
    		this.name = name;
    	}
    		
    	@Override
    	public String toString() {
    		return "Animal [age=" + age + ", name=" + name + "]";
    	}
    
    	@Override
    	public int compareTo(Animal o) {
    		return o.age - this.age;
    	}
    	
    }
    
    /**
     *     Animal        
     * @author Arkay
     *
     */
    class AnimalCompare implements Comparator<Animal> {
    
    	@Override
    	public int compare(Animal o1, Animal o2) {
    		return o1.age - o2.age;
    	}
    	
    }
    
    public class TestTreeSet {
    	public static void main(String[] args) {
    		
    		TreeSet<Animal> a1 = new TreeSet<Animal>();
    		
    		a1.add(new Animal(2, "  "));
    		a1.add(new Animal(5, "  "));
    		a1.add(new Animal(8, "  "));
    	
    		System.out.println(a1);
    		
    		TreeSet<Animal> a2 = new TreeSet<Animal>(new AnimalCompare());
    		
    		a2.add(new Animal(1, "  "));
    		a2.add(new Animal(9, "  "));
    		a2.add(new Animal(3, "  "));
    		
    		System.out.println(a2);
    		
    	}
    }
    /*
        :
    [Animal [age=8, name=  ], Animal [age=5, name=  ], Animal [age=2, name=  ]]
    [Animal [age=1, name=  ], Animal [age=3, name=  ], Animal [age=9, name=  ]]
    */
    

    좋은 웹페이지 즐겨찾기