SeouliteLab

[Java/자바] 정렬된 순서로 Map(HashMap) 순회하기 본문

프로그래밍

[Java/자바] 정렬된 순서로 Map(HashMap) 순회하기

Seoulite Lab 2024. 3. 7. 09:10

Java에서 HashMap은 순서를 보장하지 않습니다. 그러나 때로는 Map의 키 또는 값에 대해 정렬된 순서로 순회해야 할 때가 있습니다. 이를 위해 여러 방법이 있습니다. 이 블로그 게시물에서는 Java에서 정렬된 순서로 Map을 순회하는 다양한 방법을 살펴보겠습니다.

예제 1: TreeMap 사용

import java.util.*;

Map<Integer, String> map = new TreeMap<>();
map.put(3, "Three");
map.put(1, "One");
map.put(2, "Two");

for (Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

위 예제는 TreeMap을 사용하여 정렬된 순서로 Map을 순회하는 방법을 보여줍니다. TreeMap은 내부적으로 키의 정렬된 순서를 유지하기 때문에 순회 결과가 정렬된 순서로 나옵니다.

예제 2: TreeMap에 Comparator 적용

import java.util.*;

Map<Integer, String> map = new TreeMap<>((a, b) -> b.compareTo(a));
map.put(3, "Three");
map.put(1, "One");
map.put(2, "Two");

for (Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

위 예제는 TreeMap에 Comparator를 적용하여 역순으로 정렬된 순서로 Map을 순회하는 방법을 보여줍니다.

예제 3: LinkedHashMap 사용

import java.util.*;

Map<Integer, String> map = new LinkedHashMap<>();
map.put(3, "Three");
map.put(1, "One");
map.put(2, "Two");

for (Map.Entry<Integer, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

위 예제는 LinkedHashMap을 사용하여 삽입 순서대로 Map을 순회하는 방법을 보여줍니다. LinkedHashMap은 요소를 삽입한 순서대로 순회됩니다.