TreeSet
TreeSet은 검색트리의 자료구조 형태로 데이터를 저장하는 컬렉션 클래스.
정렬, 검색, 범위검색에 높은 성능을 보인다.
Set 인터페이스로 구현했음으로 중복된 데이터의 저장을 허용하지않으며 정렬된 위치에 저장함으로 저장순서를 유지하지도 않는다.
각 노드에 최대 2개의 노드를 연결할 수 있으며 루트라고 불리는 하나의 노드에서부터 시작해 계속 확장해나갈 수 있다.
위에서부터 아래로 부모노드, 자식노드라한다.
저장삭제시 트리 일부를 재구성해야해 시간이 더 걸리나 검색과 정렬기능이 뛰어나다.
https://standout.tistory.com/1367
TreeSet()
기본 생성자로, 비어 있는 TreeSet을 생성합니다. 이 TreeSet은 요소의 순서를 기반으로 정렬됩니다.
TreeSet<Integer> treeSet = new TreeSet<>();
TreeSet(Collection c)
주어진 컬렉션의 모든 요소를 포함하고 자연 순서(요소의 기본 순서)에 따라 정렬된 TreeSet을 생성합니다.
ArrayList<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
TreeSet<Integer> treeSet = new TreeSet<>(list);
TreeSet(Comparator comp)
주어진 Comparator에 따라 요소가 정렬된 TreeSet을 생성합니다.
Comparator<Integer> reverseOrder = Collections.reverseOrder();
TreeSet<Integer> treeSet = new TreeSet<>(reverseOrder);
TreeSet(SortedSet s)
주어진 SortedSet의 요소와 동일한 요소로 구성된 TreeSet을 생성합니다.
SortedSet<Integer> sortedSet = new TreeSet<>();
sortedSet.add(3);
sortedSet.add(1);
sortedSet.add(2);
TreeSet<Integer> treeSet = new TreeSet<>(sortedSet);
boolean add(Object o)
TreeSet에 지정된 요소를 추가합니다.
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(3);
treeSet.add(1);
treeSet.add(2);
boolean addAll(Collection c)
지정된 컬렉션의 모든 요소를 TreeSet에 추가합니다.
TreeSet<Integer> treeSet = new TreeSet<>();
ArrayList<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
treeSet.addAll(list);
Object ceiling(Object o)
주어진 요소와 동등한 것이 없으면 가장 가까운 상위 요소를 반환합니다.
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(3);
treeSet.add(5);
System.out.println(treeSet.ceiling(2)); // 3
void clear()
TreeSet에서 모든 요소를 제거합니다.
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(3);
treeSet.add(5);
treeSet.clear();
Object clone()
TreeSet의 얕은 복사본을 생성하여 반환합니다.
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(3);
treeSet.add(5);
TreeSet<Integer> copySet = (TreeSet<Integer>) treeSet.clone();
Comparator comparator()
TreeSet의 요소를 정렬하는 데 사용되는 Comparator를 반환합니다.
Comparator<Integer> comparator = treeSet.comparator();
boolean contains(Object o)
TreeSet이 지정된 요소를 포함하고 있는지 여부를 반환합니다.
System.out.println(treeSet.contains(3)); // true
booleadn containsAll(Collection c)
TreeSet이 지정된 컬렉션의 모든 요소를 포함하고 있는지 여부를 반환합니다.
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(3);
System.out.println(treeSet.containsAll(list)); // true
NavigableSet descendingSet()
TreeSet의 요소를 내림차순으로 정렬한 NavigableSet을 반환합니다.
NavigableSet<Integer> descendingSet = treeSet.descendingSet();
Object first()
TreeSet의 첫 번째(가장 낮은) 요소를 반환합니다.
System.out.println(treeSet.first());
Object floor(Object o)
주어진 요소와 동등한 것이 없으면 가장 가까운 하위 요소를 반환합니다.
System.out.println(treeSet.floor(2)); // 1
SortedSet headSet(Object toElement)
주어진 요소보다 작은 모든 요소를 포함하는 SortedSet을 반환합니다.
SortedSet<Integer> headSet = treeSet.headSet(3);
NavigableSet headSet(Object toElement, boolean inclusive)
주어진 요소보다 작거나 같은 모든 요소를 포함하는 NavigableSet을 반환합니다.
NavigableSet<Integer> headSet = treeSet.headSet(3, true);
Object higher(Object o)
주어진 요소보다 큰 것이 없으면 가장 가까운 상위 요소를 반환합니다.
System.out.println(treeSet.higher(2)); // 3
boolean isEmpty()
TreeSet이 비어 있는지 여부를 반환합니다.
System.out.println(treeSet.isEmpty()); // false
Iterator iterator()
TreeSet의 요소를 반복하는 Iterator를 반환합니다.
Iterator<Integer> iterator = treeSet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
Object last()
TreeSet의 마지막(가장 높은) 요소를 반환합니다.
System.out.println(treeSet.last());
Object lower(Object o)
주어진 요소보다 작은 것이 없으면 가장 가까운 하위 요소를 반환합니다.
System.out.println(treeSet.lower(3)); // 1
Object pollFirst()
TreeSet의 첫 번째 요소를 제거하고 반환합니다.
System.out.println(treeSet.pollFirst());
Object pollLast()
TreeSet의 마지막 요소를 제거하고 반환합니다.
System.out.println(treeSet.pollLast());
boolean remove(Object o)
TreeSet에서 지정된 요소를 제거합니다.
treeSet.remove(2);
boolean retainAll(Collection c)
TreeSet에서 지정된 컬렉션에 포함된 요소만 유지하고 나머지 요소를 제거합니다.
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(3);
treeSet.retainAll(list);
int size()
TreeSet에 포함된 요소의 수를 반환합니다.
System.out.println(treeSet.size());
Spliterator spliterator()
TreeSet의 요소를 반복하는 Spliterator를 반환합니다.
Spliterator<Integer> spliterator = treeSet.spliterator();
SortedSet subSet(Object fromElement, Object toElement)
주어진 범위에 해당하는 요소를 포함하는 SortedSet을 반환합니다.
SortedSet<Integer> subSet = treeSet.subSet(1, 3);
NavigableSet<E> subSet(E fromElement, boolean frominclusive, E toElement, boolean toInclusive)
주어진 범위에 해당하는 요소를 포함하는 NavigableSet을 반환합니다.
NavigableSet<Integer> subSet = treeSet.subSet(1, true, 3, true);
SortedSet failSet(Object fromElement)
주어진 요소보다 크거나 같은 모든 요소를 포함하는 SortedSet을 반환합니다.
SortedSet<Integer> tailSet = treeSet.tailSet(3);
Object[] toArray()
TreeSet에 포함된 요소를 포함하는 배열을 반환합니다.
Object[] array = treeSet.toArray();
Object[] toArray(Object[] a)
TreeSet에 포함된 요소를 지정된 배열에 복사하여 반환합니다.
Integer[] array = new Integer[treeSet.size()];
treeSet.toArray(array);
'JAVA' 카테고리의 다른 글
범위검색이나 정렬이 필요한 경우에 사용하는 TreeMap (0) | 2024.02.06 |
---|---|
HashTable 보다 새버전인 HashMap (0) | 2024.02.06 |
Set인터페이스를 구현한 대표적인 컬렉션, HashSet (0) | 2024.02.06 |
다양한 정렬 요구에 대응하다, Compartator와 Comparable 인터페이스 (0) | 2024.02.06 |
배열을 다루는데 유용한 메서드, Arrays (0) | 2024.02.05 |