实现对HashMap的value排序

Posted teiba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现对HashMap的value排序相关的知识,希望对你有一定的参考价值。

问题:
如何对HashMap中的value值进行排序

关键点:
1.取HashMap的Map.Entry,放入List
2.利用Collections.sort(List, Comparator<? extents T>)对Map.Entry中的value进行排序
3.实现内部类Comparator,实现String的compare方法

代码:

 1 import java.util.*;
 2 
 3 public class HashMapTest {
 4 
 5     public static void main(String[] args){
 6         HashMap<String, String> map = new HashMap<>();
 7         map.put("one", "good");
 8         map.put("two", "bad");
 9         map.put("three", "happy");
10         map.put("fourth", "sad");
11 
12         List<Map.Entry<String, String>> listEntry = new ArrayList<>();
13         listEntry.addAll(map.entrySet());
14         Collections.sort(listEntry, new Comparator<Map.Entry<String, String>>() {
15             @Override
16             public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
17 
18                 // String的compareTo方法,返回负数,说明o1在o2的字典顺序之前。
19                 return o1.getValue().compareTo(o2.getValue());
20             }
21         });
22 
23         for(Map.Entry<String, String> entry : listEntry){
24             System.out.println(entry.getKey() + "  " + entry.getValue());
25         }
26     }
27 }

运行结果:

技术图片

结果按照英文字母表的顺序排序。

以上是关于实现对HashMap的value排序的主要内容,如果未能解决你的问题,请参考以下文章

hashmap按value排序

java程序读一个文本文件并用hashmap进行存储,并对其中的信息按照姓名排序

面试小题

面试小题

HashMap原理:哈希函数的设计

Java HashMap按key排序和按value排序的两种简便方法