11-34~36 HashSet(1)


HashSet

  • シーケンスX、反復X
  • Setインタフェースを有する典型的な集合クラス
  • の順序を維持するには、LinkedHashSetクラス
  • を使用します.

    TreeSet

  • 範囲収集クラス
  • 検索とソートに役立ちます
  • HashSetよりもデータの追加と削除に時間がかかります
    例1
    public static void main(String[] args){
    	Object[] objArr = {"1", new Integer(1), "2", "2", "3", "3", "4", "4", "4"};
    	Set set = new HashSet();
    	
    	for(int i = 0; i < objArr.length; i++) {
    		set.add(objArr[i]);
    	}
    	System.out.println(set);	// [1, 1, 2, 3, 4] 중복 제거. 문자열 != 정수
    	
    	Iterator it = set.iterator();
    	
    	while(it.hasNext()) {	// 배열 요소 하나씩 출력. 순서 유지한다는 보장 X
    		System.out.println(it.next());		
    	}
    }
    例2
    public static void main(String[] args){
    	Set set = new HashSet();
    	
    	for(int i = 0; set.size() < 6; i++) {
    		int num = (int)(Math.random()*45) + 1;
    		set.add(num);
    	}
    	
    	System.out.println(set);	// HashSet은 정렬 X
    	// set의 모든 요소를 List에 저장 후 정렬
    	List list = new LinkedList(set);	// LinkedList(Collection c)
    	Collections.sort(list);		// Collections.sort(List list). 정렬
    	System.out.println(list);	// list는 정렬 O
    }