Java8 对Map进行排序
前言:
随着Java 8 的
之后推出后可以很优雅实现Map的排序。
示例:
final Map<String, Integer> wordCounts = new HashMap<>();
wordCounts.put("USA", 100);
wordCounts.put("jobs", 200);
wordCounts.put("software", 50);
wordCounts.put("technology", 70);
wordCounts.put("opportunity", 200);//{USA=100, software=50, jobs=200, opportunity=200, technology=70}复制代码
按升序对值进行排序,使用
存储排序结果来保留结果映射中元素的顺序
1、正向
final Map<String, Integer> sortedByCount = wordCounts.entrySet().stream().sorted(Map.Entry.comparingByValue()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));//{software=50, technology=70, USA=100, jobs=200, opportunity=200}2、反向 reversed
final Map<String, Integer> sortedByCount1 = wordCounts.entrySet().stream().sorted((Map.Entry.<String, Integer>comparingByValue().reversed())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));//{jobs=200, opportunity=200, USA=100, technology=70, software=50}复制代码
推荐
方法将
作为参数使用任何类型的值对映射进行排序。上面的排序可以用
写成:
//正向 final Map<String, Integer> sortedByCount3 = wordCounts.entrySet().stream().sorted((e1, e2) -> e1.getValue().compareTo(e2.getValue())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
//{software=50, technology=70, USA=100, jobs=200, opportunity=200}//反向 == reversed()
final Map<String, Integer> sortedByCount2 = wordCounts.entrySet().stream().sorted((e1, e2) -> e2.getValue().compareTo(e1.getValue())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));//{jobs=200, opportunity=200, USA=100, technology=70, software=50}
复制代码
转载于:https://juejin.im/post/5cf6044cf265da1bb13f1db1
Java8 对Map进行排序相关推荐
- java8新特性:对map集合排序
一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...
- java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)
java8新特性:对map集合排序,根据key或者value操作排序(升序.降序) 直接上代码: package com.drew.test; import java.util.List; impor ...
- java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序
在这篇文章中,您将学习如何使用Java对Map按照键或值进行排序.前几日有位朋友面试遇到了这个问题,看似很简单的问题,但是如果不仔细研究一下也是很容易让人懵圈的面试题.所以我决定写这样一篇文章.在Ja ...
- Java8 Lambda表达式 ArrayList排序
Java7和 Java8对 List进行排序实例: package com.dc.utils;import java.util.*; /*** @author hdc* @date 2019/2/25 ...
- C++map容器-排序
map容器排序 利用仿函数,可以改变排序规则 代码如下: #include <iostream> using namespace std; #include <map> //m ...
- java多字段排序,java8 stream多字段排序的实现
很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理 使用java8新特性,下面先来点基础的 List list; 代表某集合 //返回 对象集合以类属性一 ...
- Java8 stream().map()将对象转换为其他对象
Java8 stream().map()将对象转换为其他对象 1: 将对象List转为List public class user{private String name;private String ...
- 【java】关于Map的排序性的一次使用,有序的Map
关于Map的排序性的一次使用,有序的Map >>>>> hashmap是按key的hash码排序的,而treemap是利用comparator 进行key的自然排序的 / ...
- Java Map 自定义排序
HashMap是不保证顺序的,要有顺序,要用LinkedHashMap,这是按照插入顺序排列的. Map接口的哈希表和链接列表实现,具有可预知的迭代顺序.此实现与HashMap的不同之处在于,后者维护 ...
最新文章
- 数据结构与算法 第二次实验报告堆栈队列
- java 扫描包框架_在Android中实现类似Spring的软件包扫描
- [Django] 查看orm自己主动运行的原始查询sql
- 复现经典:《统计学习方法》第 4 章 朴素贝叶斯
- Jar包部署-指定jsp打包配置
- 命令行下安装的tensorflow怎么打开_CourseMaker微课制作教程18:录ppt一直“正在打开……”及WPS下ppt满屏放映怎么办?...
- 客户端版本和服务器版本上传软件
- mysql增删改查 工具类_JDBC工具类实现对数据库数据的增删改查
- MongoDB数据库操作---终端操作
- 内外网同时使用解决办法
- 微软发布 VS Code Jupyter 插件!不止 Python,多语言的 Jupyter Notebook支持来了!
- Java-Swing编程介绍
- 大厂团队Leader实战秘诀:工程师成长最重要的8项技能
- Adobe read X安装过程中出现无法将数值DisableExceptionChainValidation写入键
- 黑马程序员---wpf学习笔记四---banding的那些事
- glib linux,如何升级glib呢?
- win8计算机的录音功能,win8电脑录音机功能在哪|win8录音功能使用方法
- 根据地址获取坐标经纬度
- socat的安装与使用
- C# 学习笔记——PL 并行编程 TPL 和传统 .NET 异步编程
热门文章
- “环太平洋”走进现实,五角大楼研发人与武器互动的意念控制技术
- Nginx 从安装到高可用
- GNN教程:GraghSAGE算法细节详解!
- 机器学习训练中常见的问题和挑战!
- 特征工程(七)SelectFromModel
- 2020年「21篇」医学影像算法最佳综述
- 原来这部电影 18 禁?用神经网络“看”剧本,AI 秒给预测评级
- 她,诗人拜伦之女,英国数学家,历史上第一位程序员
- 当专业动画师用GAN帮自己“偷懒”,几分钟就完成了几周的工作
- 这篇博士毕业论文致谢句句诛心......