[JAVA] 56. Collection - Set

편준민's avatar
Feb 19, 2025
[JAVA] 56. Collection - Set
💡
ArrayList 또는 LinkedList는 데이터 간의 순서가 존재한다. 하지만 순서는 상관없이 데이터를 저장하고 싶을 때 set(집합)을 사용한다.

set의 종류

  • HashSet - 해시 테이블에 원소 저장하기 때문에 성능이 가장 우수, 하지만 원소의 순서일정하지 않은 단점이 존재.
  • TreeSet - 레드-블랙 트리 에 원소를 저장. 값에 따라 순서가 결정되지만 HashSet보다는 느리다.
  • LinkedHashSet - 해시 테이블가 연결 리스트를 결합한 것으로 원소들의 순서가 삽입되었던 순서와 같다. 이 방법은 HashSet의 문제비용을 들여서 순서의 불명확성을 제거한 방법이다.

1. HashSet

package ex13; import java.util.HashSet; public class Set01 { public static void main(String[] args) { HashSet<String> set = new HashSet<String>(); set.add("milk"); set.add("bread"); set.add("butter"); set.add("cheese"); set.add("ham"); set.add("ham"); System.out.println(set); if (set.contains("ham")) { System.out.println("ham 중복"); } } }
순서가 랜덤하다.
순서가 랜덤하다.

2. TreeSet

package ex13; import java.util.TreeSet; public class Set02 { public static void main(String[] args) { TreeSet<String> set = new TreeSet<String>(); set.add("milk"); set.add("bread"); set.add("butter"); set.add("cheese"); set.add("ham"); set.add("ham"); System.out.println(set); if (set.contains("ham")) { System.out.println("ham 중복"); } } }
T reeSet은 알파벳 순서대로 정렬 됨
T reeSet은 알파벳 순서대로 정렬 됨

3. LinkedHash

package ex13; import java.util.LinkedHashSet; public class Set03 { public static void main(String[] args) { LinkedHashSet<String> set = new LinkedHashSet<String>(); set.add("milk"); set.add("bread"); set.add("butter"); set.add("cheese"); set.add("ham"); set.add("ham"); System.out.println(set); if (set.contains("ham")) { System.out.println("ham 중복"); } } }
내가 넣은 순서대로 순서정렬
내가 넣은 순서대로 순서정렬
 
Share article

YunSeolAn