티스토리 뷰

HashSet,LinkedHashSet,TreeSet에 대해

📙 HashSet

import java.util.HashSet;  
import java.util.Set;  

final Set<Integer> numbers = new HashSet<>();  

numbers.add(7654321);  
numbers.add(765432);  
numbers.add(7654);  
numbers.add(732);  

numbers
  • 위와같은 코드의 결과는 아래와 같다.
    image
  • 순서가 뒤죽박죽으로 정리되어있다📗 LinkedHashSet
import java.util.LinkedHashSet;  
import java.util.Set;  

final Set<Integer> numbers = new LinkedHashSet<>();  

numbers.add(7654321);  
numbers.add(765432);  
numbers.add(7654);  
numbers.add(732);  

numbers
  • 같은 데이터와 순서를 LinkedHashSet으로 만들면 순서가 그대로 저장되는것을 볼 수 있다.

📕TreeSet

import java.util.TreeSet;  
import java.util.Set;  

final Set<Integer> numbers = new TreeSet<>();  

numbers.add(7654321);  
numbers.add(765432);  
numbers.add(7654);  
numbers.add(732);  

numbers
  • 같은 데이터와 순서를 TreeSet으로 저장하면, 작은 데이터부터 큰 순서대로 저장되고 있는 것을 알 수 있다.

TreeSet은 기본적으로 정렬이 되서 제공되기 때문에 정렬과 관련된 기능을 가진다
NavigableSet이라는 인터페이스가 아래와 같이 정렬 관련 메서드를 제공한다

📚 floor, lower, higher, ceiling, subset, head

  • floor : 가장 가깝거나, 작은수를 반환
  • lower : 주어진 수보다 작은 수를 반환
  • higher : 주어진 수보다 큰 수를 반환
  • subset : 범위내의 수를 모두 반환
    단, 두 인자를 입력시 앞 인자는 포함이고, 뒤 인자는 포함되지 않는 범위에서 값을 가져온다
  • headset : 주어진 수보다 앞에 있는 수를 모두 반환
  • tailset : 주어진 수보다 뒤에 있는 수를 모두 반환

📚 유일한 문자를 찾는방법

Set 자료구조를 이용하면 유일한 문자를 찾을 수 있다.

import java.util.*;  

    final List<Character> alphabets = List.of('a','b','c','a','A','C','Z','c','b');  
    final Set<Character> linkedAl = new LinkedHashSet<>(alphabets);  
    final Set<Character> hashSetAl = new HashSet<>(alphabets);  
    final Set<Character> treeAl = new TreeSet<>(alphabets);
  • LinkedHashSet은 입력한 순서대로 반환
  • HashSet은 순서 상관없이 반환
  • TreeSet은 정렬된 순서로 반환된다

'JAVA > 컬렉션과 자료구조' 카테고리의 다른 글

15. Queue  (1) 2024.01.01
13. 트리  (1) 2024.01.01
12. 해싱  (1) 2024.01.01
10. 컬렉션의 정렬  (0) 2024.01.01
9. 컬렉션  (0) 2024.01.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함