본문 바로가기

이론/알고리즘&자료구조&Java

[자료구조/Java Collection] Set

Set


순서 유지x, 데이터 중복 허용x

HashSet

가장 빠른 random access 속도내부적으로 Hashing을 이용해서 구현한 컬렉션

"데이터의 존재 유무가 중요할 때"

hashing: 원래의 데이터를 상징하는 더 짧은 길이의 값으로 변환하는 것. 이 값으로 검색을 수행하면 훨씬 더 빠른 속도를 낼 수 있음

LinkedHashSet

추가된 순서, 최근에 접근한 순서대로 접근 가능

Set 중 성능이 가장 느림

TreeSet

정렬된 순서 유지, 정렬 방법 지정 가능

red-black tree(이진 탐색 트리) 타입으로 값 저장, 성능이 느림

데이터 추가, 삭제는 시간이 걸리지만 검색과 정렬의 성능은 뛰어남

TreeSet<String> treeset=new TreeSet<String>();

treeset.add("apple");
treeset.add("banana");
treeset.add("cycle");

System.out.println(treeset.headSet("c"));
System.out.println(treeset.tailSet("a"));