List<Map<String,Object>> 排序
基础数据
private List<Map<String,Object>> buildListMap() {
List<Map<String,Object>> depts = new ArrayList<>();
Map<String, Object> result = new HashMap<String, Object>();
result.put("id", 1);
result.put("type", "type");
result.put("key","key");
result.put("value","value");
result.put("status",0);
result.put("createDate", new Date());
result.put("updateDate",new Date());
result.put("sort","亚瑟");
depts.add(result);
Map<String, Object> result1 = new HashMap<String, Object>();
result1.put("id", 2);
result1.put("type", "type1");
result1.put("key","key1");
result1.put("value","value1");
result1.put("status",0);
result1.put("createDate", 10000001);
result1.put("updateDate",new Date());
result1.put("sort","剑圣");
depts.add(result1);
Map<String, Object> result2 = new HashMap<String, Object>();
result2.put("id", 3);
result2.put("type", "type2");
result2.put("key","key2");
result2.put("value","value2");
result2.put("status",0);
result2.put("createDate", new Date(10000000));
result2.put("updateDate",new Date());
result2.put("sort","瑞雯");
depts.add(result2);
return depts;
}
中文排序
@Test
public void test3() {
// include 上面基础代码
List<Map<String, Object>> depts = buildListMap();
System.out.println(depts);
// 1. 中文排序 sort(也可以针对其他字段排序)
Collections.sort(depts, (o1, o2) -> {
// 取出需要排序的字段
String sort1 = String.valueOf(o1.get("sort"));
String sort2 = String.valueOf(o2.get("sort"));
// 排序
Collator instance = Collator.getInstance(Locale.CHINA);
// Collator instance = Collator.getInstance(); 其他排序方式
// 升序, 参数调换位置就是降序
return instance.compare(sort1, sort2);
});
// 2. 实现排序接口
// Collections.sort(depts, new MapComparator());
// depts.sort(new MapComparator());
System.out.println(depts);
}
实现接口排序
接口
package com.xie.test.common;
import java.util.Comparator;
import java.util.Map;
/**
* @Description
* @Date 2022-04-27 14:25
* @Author xie
*/
public class MapComparator implements Comparator<Map<String, Object>> {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
// 取出map的key,进行比较排序
String b1 = o1.get("createDate").toString();
String b2 = o2.get("createDate").toString();
if (b2 != null) {
// 倒序,正序倒过来即可。
return b2.compareTo(b1);
}
return 0;
}
}
@Test
public void test3() {
// include 上面基础代码
List<Map<String, Object>> depts = buildListMap();
System.out.println(depts);
// ......
// 2. 实现排序接口
Collections.sort(depts, new MapComparator());
depts.sort(new MapComparator());
System.out.println(depts);
}
欢迎一起来学习和指导,谢谢关注!
本文来自博客园,作者:xiexie0812,转载请注明原文链接:https://www.cnblogs.com/mask-xiexie/p/16199038.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了