java map 按照key排序_Java Map 按Key排序和按Value排序

packagetest;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.HashMap;importjava.util.Iterator;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.Map;importjava.util.TreeMap;importjava.util.Map.Entry;public classMapSortDemo {/***@paramargs*/

public static voidmain(String[] args) {

Map hMap = new HashMap();

hMap.put("a", "3");

hMap.put("z", "2");

hMap.put("b", "6");

hMap.put("o", "9");

System.out.println("根据key升序排序");

Map sortByKeyResultMap = sortMapByKey(hMap); //按Key进行排序

Iterator> sortByKeyEntries =sortByKeyResultMap.entrySet().iterator();while(sortByKeyEntries.hasNext()) {

Map.Entry entry =sortByKeyEntries.next();

System.out.println("Key = " + entry.getKey() + "------->Value = " +entry.getValue());

}

System.out.println("------------------------------");

System.out.println("根据value降序排序");

Map sortByValueResultMap = sortMapByValue(hMap); //按Value进行排序

Iterator> sortByValueEntries =sortByValueResultMap.entrySet().iterator();while(sortByValueEntries.hasNext()) {

Map.Entry entry =sortByValueEntries.next();

System.out.println("Key = " + entry.getKey() + "------->Value = " +entry.getValue());

}

}/*** 使用 Map按key进行排序

*@parammap

*@return

*/

public static Map sortMapByKey(Mapmap) {if (map == null ||map.isEmpty()) {return null;

}//Map sortMap = new TreeMap(new MapKeyComparator());

Map sortMap = new TreeMap(new Comparator() {public intcompare(String obj1, String obj2) {return obj1.compareTo(obj2);//升序排序

}

});

sortMap.putAll(map);returnsortMap;

}/*** 使用 Map按value进行排序

*@parammap

*@return

*/

public static Map sortMapByValue(Mapmap) {if (map == null ||map.isEmpty()) {return null;

}

Map sortedMap = new LinkedHashMap();

List> entryList = new ArrayList>(map.entrySet());//Collections.sort(entryList, new MapValueComparator());

Collections.sort(

entryList,new Comparator>(){public int compare(Entry o1, Entryo2) {return o2.getValue().compareTo(o1.getValue());//降序排序

}

}

);

Iterator> iter =entryList.iterator();

Map.Entry tmpEntry = null;while(iter.hasNext()) {

tmpEntry=iter.next();

sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());

}returnsortedMap;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值