💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Java 程序:按值对映射进行排序 > 原文: [https://www.programiz.com/java-programming/examples/sort-map-values](https://www.programiz.com/java-programming/examples/sort-map-values) #### 在此程序中,您将学习按 Java 中的值对给定的映射进行排序。 ## 示例:按值对映射排序 ```java import java.util.*; public class SortMap { public static void main(String[] args) { LinkedHashMap<String, String> capitals = new LinkedHashMap<>(); capitals.put("Nepal", "Kathmandu"); capitals.put("India", "New Delhi"); capitals.put("United States", "Washington"); capitals.put("England", "London"); capitals.put("Australia", "Canberra"); Map<String, String> result = sortMap(capitals); for (Map.Entry<String, String> entry : result.entrySet()) { System.out.print("Key: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); } } public static LinkedHashMap<String, String> sortMap(LinkedHashMap<String, String> map) { List<Map.Entry<String, String>> capitalList = new LinkedList<>(map.entrySet()); Collections.sort(capitalList, (o1, o2) -> o1.getValue().compareTo(o2.getValue())); LinkedHashMap<String, String> result = new LinkedHashMap<>(); for (Map.Entry<String, String> entry : capitalList) { result.put(entry.getKey(), entry.getValue()); } return result; } } ``` 运行该程序时,输出为: ```java Key: Australia Value: Canberra Key: Nepal Value: Kathmandu Key: England Value: London Key: India Value: New Delhi Key: United States Value: Washington ``` 在上述程序中,我们将`LinkedHashMap`和国家/地区及其各自的首都存储在变量`capitalList`中。 我们有一种方法`sortMap()`,它采用链接的哈希映射并返回排序后的链接的哈希映射。 在该方法内部,我们将哈希映射转换为列表`capitalList`。 然后,我们使用`sort()`方法获取一个列表和一个比较器。 在我们的情况下,比较器是 lambda,`(o1, o2) -> o1.getValue().compareTo(o2.getValue())`,它对`o1`和`o2`列表中两个项目的值进行比较。 操作后,我们得到排序列表`capitalList`。 然后,我们只需将列表转换为`LinkedHashMap`结果并返回即可。 回到`main()`方法,我们遍历映射中的每个项目并打印其键和值。