값으로 해시맵 정렬
문제:
다음을 기반으로 HashMap을 정렬해야 합니다. 포함된 값을 확인하고 키-값 쌍을 유지합니다. sorting.
해결책:
HashMap을 값별로 정렬하는 것은 일반적인 접근 방식을 사용하여 수행할 수 있습니다. 다음 단계에서는 프로세스를 간략하게 설명합니다.
구현 예:
다음 Java 코드는 정렬 알고리즘을 구현합니다.
import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; public class SortMapByValue { public static final boolean ASC = true; public static final boolean DESC = false; public static void main(String[] args) { // Create dummy HashMap Map<Integer, String> unsortedMap = new HashMap<>(); unsortedMap.put(1, "froyo"); unsortedMap.put(2, "abby"); unsortedMap.put(3, "denver"); unsortedMap.put(4, "frost"); unsortedMap.put(5, "daisy"); // Sort in ascending order Map<Integer, String> sortedMapAsc = sortByValue(unsortedMap, ASC); // Sort in descending order Map<Integer, String> sortedMapDesc = sortByValue(unsortedMap, DESC); // Print sorted maps System.out.println("Sorted Ascending:"); printMap(sortedMapAsc); System.out.println("Sorted Descending:"); printMap(sortedMapDesc); } private static Map<Integer, String> sortByValue(Map<Integer, String> map, boolean order) { List<Entry<Integer, String>> list = new LinkedList<>(map.entrySet()); // Custom comparator for values Collections.sort(list, new Comparator<Entry<Integer, String>>() { public int compare(Entry<Integer, String> o1, Entry<Integer, String> o2) { if (order) { return o1.getValue().compareTo(o2.getValue()); } else { return o2.getValue().compareTo(o1.getValue()); } } }); // Return sorted LinkedHashMap Map<Integer, String> sortedMap = new LinkedHashMap<>(); for (Entry<Integer, String> entry : list) { sortedMap.put(entry.getKey(), entry.getValue()); } return sortedMap; } public static void printMap(Map<Integer, String> map) { for (Entry<Integer, String> entry : map.entrySet()) { System.out.println(entry.getKey() + " - " + entry.getValue()); } System.out.println(); } }
위 내용은 Java에서 키-값 쌍을 유지하면서 값을 기준으로 HashMap을 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!