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集合中某个字段排序相关推荐

  1. Java中Map集合中的Entry对象

    Entry: 键值对 对象. 在Map类设计是,提供了一个嵌套接口(static修饰的接口):Entry.Entry将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历Map集合时,就可以从每 ...

  2. jdk8中Map集合中的compute系列方法的使用

    1.compute 现对List 中的map集合中的某个key进行批量的数据处理: package com.company.concurrent.jdk8;import java.util.Array ...

  3. java map移除key为空_Java实现过滤掉map集合中key或value为空的值示例

    本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.H ...

  4. Java将map置空_Java实现过滤掉map集合中key或value为空的值示例

    Java实现过滤掉map集合中key或value为空的值示例 发布时间:2020-09-16 23:26:14 来源:脚本之家 阅读:147 作者:May的博客 本文实例讲述了Java实现过滤掉map ...

  5. java map key是否存在_java中如何判断map集合中是否存在key

    有两种方法可以判断map集合中是否存在某个key. 方法1:直接使用java api提供的containsKey(): 方法2:循环遍历,逐个比较. java相关视频推荐:java视频 具体实现代码如 ...

  6. JAVA中Map集合的使用举例

    首先创建一个Emp类,再将几个Emp对象添加到Map集合中. Emp的id作为Map的键,并将id为"005"的对象从集合中删除. package com.han;import j ...

  7. Java过滤掉map集合中key或value为空的值

    import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...

  8. java 中map_Java中Map集合

    1. Java中Map集合 1. Map中value可以重复,key不能重复.对于重复的key值来说,后放置的值对覆盖前放置的值. import java.util.HashMap; public c ...

  9. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

最新文章

  1. 水很深,我还是下去了
  2. (chap4 IP协议) 全局地址和私有地址
  3. vivado 验证ddr引脚_vivado下ddr3的读写和测试详解
  4. [渝粤教育] 广东-国家-开放大学 大学英语2
  5. pcre安装_Nginx | Nginx的介绍和安装
  6. tensorflow eager 模式下打印dataset中的数据
  7. Redis遍历所有key的两个命令 -- KEYS 和 SCAN
  8. vmware 详细安装教程
  9. T检验、F检验和统计学意义(P值或sig值)
  10. 从零开始javaweb项目——毕业设计参考指南
  11. 数据分析基础-假设检验原理详解
  12. python plot画柱状图_Matplotlib绘制柱状图
  13. 专题:ARM CPU 之 PMU部件(性能监控单元)
  14. 小米笔记本Air 13.3 i5-8250U macOS黑苹果efi引导文件
  15. 计算机组成原理db和dw,汇编中的DW是什么意思那DB 它们什么作用
  16. 分布式事务框架lcn入门demo
  17. 《绿皮书》:剧情紧凑,语言很美
  18. 远驱240控制器调整参数_制冷系统高低压压力保护控制器工作原理与设定方法
  19. 网络笔记(18)DNS协议:网络世界的地址簿
  20. 【每日早报】2019/08/13

热门文章

  1. 梦幻手游服务器维护期间不能改名,《梦幻西游手游》不能说话解决方法 打字显示系统维护中是如何回事...
  2. 第8周——定期存款利息计算器
  3. spring报错parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]
  4. 阿里云天池task4
  5. anaconda中创建虚拟环境
  6. (Ryan的Redis系列博客)1.开源协议
  7. sedona-技术框架
  8. 自动载入实战---构造一个PSR-0的简易框架
  9. 一款好用的json解析工具,JsonPath。
  10. Echarts全国地图区域合并------去掉海南子区域及南海诸岛