LinkedHashMap如何根据值排序
时间: 2023-10-26 07:57:07 浏览: 215
LinkedHashMap可以根据值排序的方法是将HashMap的节点连接成双向链表结构,然后使用Collections.sort()方法对链表进行排序。具体实现步骤如下:
1. 将LinkedHashMap的entrySet()转换为List类型的集合,以便进行排序。
2. 使用Collections.sort()方法对List进行排序,可以通过传入一个Comparator对象来指定排序规则。
3. 在Comparator的compare()方法中,比较两个Entry对象的值,根据需要进行升序或降序排序。
4. 遍历排序后的List,即可按照值的顺序输出结果。
以下是一个示例代码:
```java
LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("c", "ccccc");
linkedHashMap.put("a", "aaaaa");
linkedHashMap.put("b", "bbbbb");
linkedHashMap.put("d", "ddddd");
List<Map.Entry<String, String>> list = new ArrayList<>(linkedHashMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
// 按值的升序排序
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
for (Map.Entry<String, String> entry : list) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
```
运行以上代码,将会按照值的升序输出结果。
阅读全文