共計 765 個字符,預計需要花費 2 分鐘才能閱讀完成。
要根據 Map 的值進行排序,可以使用 Java 8 中的 Stream 和 Lambda 表達式來實現。下面是一個示例代碼:
import java.util.*;
public class MapSortingExample {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();
map.put("A", 5);
map.put("B", 3);
map.put("C", 8);
map.put("D", 1);
// 使用 Stream 的 sorted 方法,根據值進行排序
Map<String, Integer> sortedMap = map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(LinkedHashMap::new,
(map1, entry) -> map1.put(entry.getKey(), entry.getValue()),
LinkedHashMap::putAll
);
// 打印排序后的 Map
sortedMap.forEach((key, value) -> System.out.println(key + ": " + value));
}
}
此示例先創建了一個包含鍵和值的 Map,然后使用 Stream 的 sorted 方法對 Map 的 Entry(鍵值對)進行排序,使用 Map.Entry.comparingByValue()
指定按值進行排序。最后,使用 collect 方法收集排序后的結果,并將其放入 LinkedHashMap 中以保持排序順序。
輸出結果為:
D: 1
B: 3
A: 5
C: 8
請注意,由于 HashMap 本身是無序的,因此我們使用 LinkedHashMap 來保持排序順序。
丸趣 TV 網 – 提供最優質的資源集合!
正文完