티스토리 뷰

JAVA/PRIMER

[JAVA] HashSet

yulrang 2018. 4. 19. 14:12
import java.util.HashSet;
import java.util.LinkedList;

// HashSet 클래스 : Set(집합)을 구현한 클래스
// 				: 집합을 구성하고 있는 원소들 사이에 순서가 없음 -> index 이용한 메소드 X
//				: 원소의 중복을 허용하지 않음
// 순서가 없기 때문에 순회가 힘듬 -> iterator를 사용

public class HashSet클래스1 {

	public static void main(String[] args) {
		LinkedList<Integer> ll = new LinkedList<Integer>();
		HashSet<Integer> hs = new HashSet<Integer>();
		
		ll.add(1);	ll.add(2);	ll.add(3);	ll.add(1);
		hs.add(1);	hs.add(2);	hs.add(3);	hs.add(1);
		
		System.out.println(ll);
		System.out.println(hs);
	}

}
[1, 2, 3, 1]
[1, 2, 3]

import java.util.HashSet;


public class HashSet클래스2 {

	public static void main(String[] args) {
		HashSet<String> hs = new HashSet<String>();
	
		// 원소 추가
		hs.add("월");	hs.add("화");
		
		// 원소 삭제 ( 값을 이용해서만 삭제 가능 )
		hs.remove("월");
		
		// 원소의 갯수 반환
		System.out.println( hs.size() );
		
		// 값에 해당하는 원소가 집함에 포함되는지 true/false
		System.out.println( hs.contains("수") );
		
		// 빈 집합인지 true/false
		System.out.println( hs.isEmpty() );
		
		System.out.println(hs);
	}

}
1
false
false
[화]

import java.util.HashSet;


public class HashSet클래스3 {

	public static void main(String[] args) {
		HashSet<String> h1 = new HashSet<String>();
		HashSet<String> h2 = new HashSet<String>();
		
		h1.add("월");	h1.add("화");	h1.add("수");
		
		// h1의 내용을 h2에 전체 복사
		h2.addAll(h1);
		
		h1.add("목");
		
		// h1이 h2를 모두 포함하고 있는지 true/false
		// == h2가 h1의 부분집합인지
		System.out.println( h1.containsAll(h2) );
		System.out.println( h2.containsAll(h1) );
		
		System.out.println(h1);
		System.out.println(h2);
	}

}
true
false
[월, 화, 수, 목]
[월, 화, 수]

import java.util.HashSet;
import java.util.Iterator;

// 순서가 없기 때문에 순회가 힘듬 -> iterator를 사용
public class HashSet클래스4 {

	public static void main(String[] args) {
		HashSet<String> h1 = new HashSet<String>();
		HashSet<String> h2 = new HashSet<String>();
		h1.add("월");	h1.add("화");	h1.add("수");
		h2.add("월");	h2.add("화");	h2.add("수");
		
		// Iterator(반복자)
		// 순서가 없는 자료구조의 원소들을 순회할 경우
		// 원소에 임의로 순서를 부여한 후, 원소를 하나씩 반환

		Iterator i =  h1.iterator();	// 반복자 생성
		Iterator i2 =  h1.iterator();
		
		System.out.print( i.next() );	// 임의 원소를 하나 반환
		System.out.print( i.next() );
		System.out.print( i.next() );	// 더이상 반환할 것이 없을 경우 에러
		
		System.out.println();
		
		while( i2.hasNext() ){
			System.out.print( i2.next() );
		}
	}

}
월화수
월화수


'JAVA > PRIMER' 카테고리의 다른 글

[JAVA] 예외처리  (0) 2018.04.19
[JAVA] HashMap  (0) 2018.04.19
[JAVA] LinkedList  (0) 2018.04.19
[JAVA] ArrayList  (0) 2018.04.19
[JAVA] Wrapper클래스  (0) 2018.04.19
댓글