问题:
如何对HashMap中的value值进行排序
关键点:
1.取HashMap的Map.Entry,放入List
2.利用Collections.sort(List, Comparator<? extents T>)进行排序
3.实现内部类Comparator,实现compare方法
代码:
import java.util.*;
public class HashMapTest {
public static void main(String[] args){
HashMap<String, String> map = new HashMap<>();
map.put("one", "good");
map.put("two", "bad");
map.put("three", "happy");
map.put("fourth", "sad");
List<Map.Entry<String, String>> listEntry = new ArrayList<>();
listEntry.addAll(map.entrySet());
Collections.sort(listEntry, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
// String的compareTo方法,返回负数,说明o1在o2的字典顺序之前。
return o1.getValue().compareTo(o2.getValue());
}
});
for(Map.Entry<String, String> entry : listEntry){
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
运行结果:
结果按照英文字母表的顺序排序。