java 以价值值对的HashMap进行排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 以价值值对的HashMap进行排序相关的知识,希望对你有一定的参考价值。
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.TreeMap;
public class SortByValue {
public static void main(String[] args) {
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("Jim", 20);
map.put("Xon", 10);
map.put("Golm", 30);
map.put("Vim", 70);
map.put("Din", 40);
map.put("Eiem", 60);
//创建一个匿名内部类,Comparator的泛型必须和TreeMap的Key一致
TreeMap<String,Integer> tree = new TreeMap<String,Integer>(new ValueComparator(map));
tree.putAll(map);
for (Entry<String,Integer> entry : tree.entrySet()) {
System.out.println(entry.getKey() + "-" + entry.getValue());
}
}
}
//a comparator that compares Strings
class ValueComparator implements Comparator<String>{
HashMap<String, Integer> map = new HashMap<String, Integer>();
public ValueComparator(HashMap<String, Integer> map){
this.map.putAll(map);
}
@Override
public int compare(String s1, String s2) {
if(map.get(s1) >= map.get(s2)){
return 1;
}else{
return -1;
}
}
}
以上是关于java 以价值值对的HashMap进行排序的主要内容,如果未能解决你的问题,请参考以下文章
java问题,我想在java中存储键值对,以便使用,但是键值对的键和值都有重复元素,使用hashmap会产生覆盖。
HashMap按键排序和按值排序
按值对HashMap进行排序[重复]
Java集合:HashMap底层实现和原理(源码解析)
java8新特性:对map集合排序
如何使用优先队列根据键值对的值进行排序