public class Test {
public static Map<Integer, Double> Probs = new TreeMap<Integer, Double>();
public static void main(String[] args) {
Probs.put(1, 0.5);
Probs.put(2, 1.5);
Probs.put(3, 0.2);
Probs.put(4, 10.2);
Probs = sortByValueDescending(Probs);
System.out.println("基于value值的降序,排序输出结果为:");
for (Map.Entry<Integer, Double> entry : Probs.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
System.out.println();
System.out.println("基于value值的升序,排序输出结果为:");
Probs = sortByValueAscending(Probs);
for (Map.Entry<Integer, Double> entry : Probs.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
}
//降序排序
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValueDescending(Map<K, V> map)
{
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>()
{
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
{
int compare = (o1.getValue()).compareTo(o2.getValue());
return -compare;
}
});
Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
//升序排序
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValueAscending(Map<K, V> map)
{
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>()
{
@Override
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
{
int compare = (o1.getValue()).compareTo(o2.getValue());
return compare;
}
});
Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}
38 Map的value值降序排序与升序排序(java)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在书写程序的过程中,常常需要对map的key或者value进行排序,Java本身没有提供对map排序的方法,下面的...
- (Notice:欢迎交流和沟通,Wx:IT_Ezra,QQ 654303408。 有问题讨论也可联系我。) (PS...
- title: Java Map 按key排序和按Value排序date: 2016/8/31 15:24:13ta...
- 现在人生活压力越来越大,父母常常焦虑,就会不知不觉地把不好的情绪传给孩子。如何不影响孩子,我从以下分析便于作为...
- 家长和小朋友们好!圣诞节快到了,可爱的外教Joma又来和大家互动啦!今天教大家的是一首外国小朋友人人都会唱的圣诞歌...