[java]TreeMap 사용법
Map의 한 형태로 값을 추가할 때마다 정렬되어 들어간다.
// 최솟값은 왼쪽 노드로, 최댓값은 오른쪽 노드로 정렬된다. TreeMap<Integer, String> tree = new TreeMap<>(); // 최솟값은 오른쪽 노드로, 최솟값은 왼쪽 노드로 정렬된다. // TreeMap<Integer, String> reversTree = new TreeMap<>(Comparator.reverseOrder()); // 데이터 입력 key, value 형태 tree.put(2, "b"); tree.put(1, "a"); tree.put(3, "c"); tree.put(4, "d"); // key 로 value 를 조회한다. assertThat(tree.get(1)).isEqualTo("a"); // key 최솟값을 가져온다. assertThat(tree.firstKey()).isEqualTo(1); // key 최댓값을 가져온다. assertThat(tree.lastKey()).isEqualTo(4); // 최소 entry를 가져온다. assertThat(tree.firstEntry()) .extracting(Entry::getKey, Entry::getValue) .containsExactly(1, "a"); // 최대 entry를 가져온다. assertThat(tree.lastEntry()) .extracting(Entry::getKey, Entry::getValue) .containsExactly(4, "d"); // 최소 entry를 가져오고, tree에서 제거한다. assertThat(tree.pollFirstEntry()) .extracting(Entry::getKey, Entry::getValue) .containsExactly(1, "a"); assertThat(tree.containsKey(1)).isFalse(); // key로 노드를 제거하고, value 를 반환한다. assertThat(tree.remove(4)) .isEqualTo("d"); assertThat(tree.containsKey(4)).isFalse(); assertThat(tree.containsValue("d")).isFalse(); // tree를 모두 비운다. tree.clear(); assertThat(tree.size()).isEqualTo(0); assertThat(tree.isEmpty()).isTrue();
최신 댓글