java对list中map集合中某个字段排序
java对list中map集合中某个字段排序
适用于字符串排序,数字对比不可用,以下示例,当把sort的值改为74,66,142时排序不对看示例2
示例1
List<Map<String, Object>> content = new ArrayList<>();Map<String, Object> map = new HashMap<>();map.put("sort", 2);map.put("name", "qwe");content.add(map);Map<String, Object> map1 = new HashMap<>();map1.put("sort", 1);map1.put("name", "rty");content.add(map1);Map<String, Object> map2 = new HashMap<>();map2.put("sort", 3);map2.put("name", "uio");content.add(map2);System.out.println(content);//结果//[{name=qwe, sort=2}, {name=rty, sort=1}, {name=uio, sort=3}]Collections.sort(content, new Comparator<Map<String, Object>>() {@Overridepublic int compare(Map<String, Object> o1, Map<String, Object> o2) {if (o1.get("sort") == null && o2.get("sort") == null){return 0;}else if (o1.get("sort") == null){return 1;}else if (o2.get("sort") == null){return -1;}else{return o1.get("sort").toString().compareTo(o2.get("sort").toString());}}});System.out.println(content);//[{name=rty, sort=1}, {name=qwe, sort=2}, {name=uio, sort=3}]
也可以写的更简洁点使用java8提供的stream
//1 普通版
content.sort((o1, o2) -> o1.get("sort").toString().compareTo(o2.get("sort").toString()));
//2最精简content.sort(Comparator.comparing(o -> o.get("sort").toString()));
示例2
List<Map<String, Object>> content = new ArrayList<>();Map<String, Object> map = new HashMap<>();map.put("sort", 74);map.put("name", "qwe");content.add(map);Map<String, Object> map1 = new HashMap<>();map1.put("sort", 62);map1.put("name", "rty");content.add(map1);Map<String, Object> map2 = new HashMap<>();map2.put("sort", 142);map2.put("name", "uio");content.add(map2);System.out.println(content);//[{name=qwe, sort=74}, {name=rty, sort=62}, {name=uio, sort=142}]//结果Collections.sort(content, new Comparator<Map<String, Object>>() {@Overridepublic int compare(Map<String, Object> o1, Map<String, Object> o2) {if (o1.get("sort") == null && o2.get("sort") == null){return 0;}else if (o1.get("sort") == null){return 1;}else if (o2.get("sort") == null){return -1;}else{return o1.get("sort").toString().compareTo(o2.get("sort").toString());}}});System.out.println(content);//[{name=uio, sort=142}, {name=rty, sort=62}, {name=qwe, sort=74}]}
java对list中map集合中某个字段排序相关推荐
- Java中Map集合中的Entry对象
Entry: 键值对 对象. 在Map类设计是,提供了一个嵌套接口(static修饰的接口):Entry.Entry将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历Map集合时,就可以从每 ...
- jdk8中Map集合中的compute系列方法的使用
1.compute 现对List 中的map集合中的某个key进行批量的数据处理: package com.company.concurrent.jdk8;import java.util.Array ...
- java map移除key为空_Java实现过滤掉map集合中key或value为空的值示例
本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.H ...
- Java将map置空_Java实现过滤掉map集合中key或value为空的值示例
Java实现过滤掉map集合中key或value为空的值示例 发布时间:2020-09-16 23:26:14 来源:脚本之家 阅读:147 作者:May的博客 本文实例讲述了Java实现过滤掉map ...
- java map key是否存在_java中如何判断map集合中是否存在key
有两种方法可以判断map集合中是否存在某个key. 方法1:直接使用java api提供的containsKey(): 方法2:循环遍历,逐个比较. java相关视频推荐:java视频 具体实现代码如 ...
- JAVA中Map集合的使用举例
首先创建一个Emp类,再将几个Emp对象添加到Map集合中. Emp的id作为Map的键,并将id为"005"的对象从集合中删除. package com.han;import j ...
- Java过滤掉map集合中key或value为空的值
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...
- java 中map_Java中Map集合
1. Java中Map集合 1. Map中value可以重复,key不能重复.对于重复的key值来说,后放置的值对覆盖前放置的值. import java.util.HashMap; public c ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
最新文章
- 水很深,我还是下去了
- (chap4 IP协议) 全局地址和私有地址
- vivado 验证ddr引脚_vivado下ddr3的读写和测试详解
- [渝粤教育] 广东-国家-开放大学 大学英语2
- pcre安装_Nginx | Nginx的介绍和安装
- tensorflow eager 模式下打印dataset中的数据
- Redis遍历所有key的两个命令 -- KEYS 和 SCAN
- vmware 详细安装教程
- T检验、F检验和统计学意义(P值或sig值)
- 从零开始javaweb项目——毕业设计参考指南
- 数据分析基础-假设检验原理详解
- python plot画柱状图_Matplotlib绘制柱状图
- 专题:ARM CPU 之 PMU部件(性能监控单元)
- 小米笔记本Air 13.3 i5-8250U macOS黑苹果efi引导文件
- 计算机组成原理db和dw,汇编中的DW是什么意思那DB 它们什么作用
- 分布式事务框架lcn入门demo
- 《绿皮书》:剧情紧凑,语言很美
- 远驱240控制器调整参数_制冷系统高低压压力保护控制器工作原理与设定方法
- 网络笔记(18)DNS协议:网络世界的地址簿
- 【每日早报】2019/08/13
热门文章
- 梦幻手游服务器维护期间不能改名,《梦幻西游手游》不能说话解决方法 打字显示系统维护中是如何回事...
- 第8周——定期存款利息计算器
- spring报错parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]
- 阿里云天池task4
- anaconda中创建虚拟环境
- (Ryan的Redis系列博客)1.开源协议
- sedona-技术框架
- 自动载入实战---构造一个PSR-0的简易框架
- 一款好用的json解析工具,JsonPath。
- Echarts全国地图区域合并------去掉海南子区域及南海诸岛