java map 字母排序_java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)...

本文展示了如何使用Java 8的新特性对Map进行排序,包括根据Key进行升序和降序排序,以及根据Value进行升序和降序排序。示例代码详细地解释了排序过程。
摘要由CSDN通过智能技术生成

packagecom.drew.test;importjava.util.List;importjava.util.Map;importcom.google.common.collect.ImmutableMap;importcom.google.common.collect.Lists;importcom.google.common.collect.Maps;/***@authorzero 2019/04/08*/

public classJava8future {public static voidmain(String[] args) {

Map map = ImmutableMap.of("0", 3, "1", 8, "0.29", 7, "1.67", 3);

System.out.println("原始的map:" +map);

System.out.println("根据map的key降序:" + sortByKey(map, true));

System.out.println("根据map的key升序:" + sortByKey(map, false));

System.out.println("根据map的value降序:" + sortByValue(map, true));

System.out.println("根据map的value升序:" + sortByValue(map, false));

}/*** 根据map的key排序

*

*@parammap 待排序的map

*@paramisDesc 是否降序,true:降序,false:升序

*@return排序好的map

*@authorzero 2019/04/08*/

public static , V> Map sortByKey(Map map, booleanisDesc) {

Map result =Maps.newLinkedHashMap();if(isDesc) {

map.entrySet().stream().sorted(Map.Entry.comparingByKey().reversed())

.forEachOrdered(e->result.put(e.getKey(), e.getValue()));

}else{

map.entrySet().stream().sorted(Map.Entry.comparingByKey())

.forEachOrdered(e->result.put(e.getKey(), e.getValue()));

}returnresult;

}/*** 根据map的value排序

*

*@parammap 待排序的map

*@paramisDesc 是否降序,true:降序,false:升序

*@return排序好的map

*@authorzero 2019/04/08*/

public static > Map sortByValue(Map map, booleanisDesc) {

Map result =Maps.newLinkedHashMap();if(isDesc) {

map.entrySet().stream().sorted(Map.Entry.comparingByValue().reversed())

.forEach(e->result.put(e.getKey(), e.getValue()));

}else{

map.entrySet().stream().sorted(Map.Entry.comparingByValue())

.forEachOrdered(e->result.put(e.getKey(), e.getValue()));

}returnresult;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值