Programming/Java

[JAVA] HashSet, TreeSet 정리

로넌 2023. 1. 27. 14:27
Set 의 특징

1) 순서가 없다.

2) 중복을 허용하지 않는다. 

 

Set Collection의 종류

1) HashSet<E>

2) TreeSet<E>

 

HashSet<E> 클래스

- 가장 많이 사용되는 Set 클래스로, 해시 알고리즘을 사용하여 검색속도가 빠르다.

- 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장한다.

 

만약 저장순서를 유지해야 한다면 LinkedHashSet을 이용하면 된다.

 

HashSet<String> set = new HashSet<>();

// 1. add() 메소드를 이용하여 요소를 저장한다.
set.add("가나다");
set.add("라마바");
set.add("사아자");
set.add("사아자");

// 2. 중복을 허용하지 않는다.
for(String x : set){
	System.out.print(x + " ");
}
// 출력결과
// 가나다 라마바 사아자

// 3. Iterator()메소드를 이용한 요소의 출력
Iterator(String> iterator = set.iterator();

while(iterator.hasNext()){
	System.out.print(iterator.next() + " ");
}

// 출력결과
// 가나다 라마바 사아자

 

TreeSet<E> 클래스

- 데이터가 정렬된 상태로 저장되는 이진 검색 트리의 형태로 요소를 저장한다.

 

TreeSet<Integer> tree = new TreeSet<>();

// 1. add() 메소드를 이용하여 저장
tree.add(10);
tree.add(30);
tree.add(20);

// 2. 정렬된 상태로 출력된다
for(int x : trr){
	System.out.print(x + " ");
}

// 출력결과
// 10 20 30

// 3. remove() 메소드를 이용한 제거
tree.remove(30);

// 4. iterator() 메소드를 이용한 요소의 출력
Iterator<Integer> iterator = new tree.iteraotr();
while(iterator.hasNext()){
	System.out.print(iterator.next() + " ");
}

// 5. size() 메소드를 이용한 개수
tree.size();

 

HashSet과 TreeSet의 차이

- set이란 순서가 없는 집합체이며 중복을 허용하지 않는다.

- TreeSet은 HashSet과 다르게 정렬되어 저장되지만 그렇기 때문에 HashSet에 비해 속도가 느리다.

 

 

참고

https://thalals.tistory.com/16

 

[JAVA] 자바 HashSet, TreeSet (Set 컬렉션 클래스)

1. Set 컬렉션 클래스의 특징 1) 요소의 저장순서를 유지하지 않느다. 2) 같은 요소이 중복저장을 허용하지 않느다. ( 즉, HashSet을 이용하면, 중복값을 쉽게 제거할 수 있다.) ​ Set 컬렉션 클래스의

thalals.tistory.com