java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)
java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)
import java.util.List;
import java.util.Map;
/**
* @author zero 2019/04/08
*/
public class Java8future {
public static void main(String\[\] args) {Map<String, Integer> 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排序\* \* @param map 待排序的map\* @param isDesc 是否降序,true:降序,false:升序\* @return 排序好的map\* @author zero 2019/04/08\*/
public static <K extends Comparable< super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {Map<K, V> result = Maps.newLinkedHashMap();if (isDesc) {map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));} else {map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));}return result;
}/\*\*\* 根据map的value排序\* \* @param map 待排序的map\* @param isDesc 是否降序,true:降序,false:升序\* @return 排序好的map\* @author zero 2019/04/08\*/
public static <K, V extends Comparable< super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {Map<K, V> result = Maps.newLinkedHashMap();if (isDesc) { map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed()).forEach(e -> result.put(e.getKey(), e.getValue()));} else { map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue()).forEachOrdered(e -> result.put(e.getKey(), e.getValue()));}return result;
}
java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)相关推荐
- Java8 新特性遍历list集合
List<String> stringList = new ArrayList<String>();stringList.add("jack");strin ...
- java升序降序排列desc,TreeMap升序|降序排列和按照value进行排序
TreeMap 升序|降序排列 import java.util.Comparator; import java.util.TreeMap; public class Main { public st ...
- java8新特性:对map集合排序
一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...
- java8新特性-stream对map集合进行过滤的方法
java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法
- Java8新特性总结 -5.Stream API函数式操作流元素集合
所有示例代码打包下载 : 点击打开链接 Java8新特性 : 接口新增默认方法和静态方法 Optional类 Lambda表达式 方法引用 Stream API - 函数式操作流元素集合 Date/T ...
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...
- java8新特性学习笔记(Lambda,stream(),filter(),collect(),map())
文章目录 1.lambda表达式(重点) 1.需求分析 2.Lambda表达式初体验 3.Lambda的语法规则 3.1 Lambda练习1 3.1 Lambda练习2 4.Lambda表达式的原理 ...
- Java8新特性——Map的新方法
今天是高考的日子,是大四师兄师姐答辩毕业的日子.一代又来,一代又去.好久没写博客,借此特殊日子整理一下前不久学java8新特性时写的代码,留下痕迹.(本博客的代码根据 java8新特性教程 学习整理, ...
- List 集合去重方式与 java8新特性stream去重
以下介绍五种 - 不同的方法去除 Java 中 ArrayList 中的重复数据 1.使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 A ...
最新文章
- .net和java互操作
- shell如何将标准错误输出重定向为标准输出
- 音视频技术开发周刊 | 156
- Mongodb3.4.4复制集群+分片配置文档
- SQLSERVER和ORACLE批量处理表名和字段名大写
- linux 如何取执行一个脚本5000次,【shell笔记脚本】嵌套、控制循环以及处理循环输出...
- 诺基亚:Symbian 3操作系统拥有多点触控功能
- mysql 自动当前时间_Mysql 自动获取当前时间
- 电子邮件正则表达式-集结号
- P3986 斐波那契数列
- JSP的自定义标签(三)之带标签体的标签
- 带时效性的条形码_条形码
- 互联网人必看的免费引流方法:十八种免费引流小技巧
- DA-4-FixBi: Bridging Domain Spaces for Unsupervised Domain Adaptation
- 在五环六环之间,有最真实的北京
- .NET EF~Entity Framework详解(lambda表达式、linq到EF)
- django tests 小结
- 服务器篇 使用Windows Server 2012R2搭建DHCP服务器-01
- C++11 auto自动类型推导
- day21 Excel基本操作
热门文章
- 5GNR漫谈5:PDCCH信道设计
- 一个有节操的Android视频播放器JieCaoVideoPlayer
- 泉州海事学校计算机,初赛公示_2020年全国高校计算机能力挑战赛
- windows store下载_《勇者斗恶龙XIS决定版》体验版开放下载,可游玩约10小时
- CAD2008画三维界面设置
- 高等数学:第一章 函数与极限(4)无穷小与无穷大
- 最新-自动化专业毕设题目选题推荐 - 单片机 嵌入式 stm32
- 不同产品CE认证的费用和时间差异
- bug系列(二)release版本DLL报错,debug版本正常
- 正交匹配追踪(OMP)其它改进算法