Java List集合排序
2024-09-08 17:54:55
二维 List 自定义排序
使用lambda表达式
import java.util.*;
public class Main {
public static void main(String[] args) {
List<List<Integer>> list = new LinkedList<>();
list.add(new LinkedList<>(Arrays.asList(3,300)));
list.add(new LinkedList<>(Arrays.asList(2,200)));
list.add(new LinkedList<>(Arrays.asList(4,400)));
list.add(new LinkedList<>(Arrays.asList(5,500)));
list.add(new LinkedList<>(Arrays.asList(1,100)));
// 排序前
System.out.println("排序前:" + list);
// 排序 (按照一维数组中下标为0的值排序)
Collections.sort(list, ((o1, o2) -> o1.get(0) - o2.get(0)));
// 排序后
System.out.println("排序后:" + list);
}
}
应用例子
2363. 合并相似的物品
class Solution {
public List<List<Integer>> mergeSimilarItems(int[][] items1, int[][] items2) {
List<List<Integer>> res = new LinkedList<>();
HashMap<Integer, Integer> map = new HashMap<>();
for(int[] item : items1){
map.put(item[0], item[1]);
}
for(int[] item : items2){
map.put(item[0], map.getOrDefault(item[0], 0) + item[1]);
}
// 遍历Map集合
for(Map.Entry<Integer, Integer> entry : map.entrySet()){
res.add(new LinkedList<>(Arrays.asList(entry.getKey(), entry.getValue())));
}
// 排序
Collections.sort(res, (a, b) -> (a.get(0) - b.get(0)));
return res;
}
}
最新文章
- 在php中定义常量时,const与define的区别?
- javascript系统时间测试题
- [Android Pro] proguard
- [IIS]IIS扫盲(三)
- java在url传输前更改字符编码
- 图片(img标签)的onerror事件
- 转:TimeSpan的用法
- 【drp 9】Servlet生命周期
- [转]log4net 使用指南
- Curl 采集乱码 gzip 原因及解决方案 utf-8
- SQL Database学习笔记
- ubuntu/linux mint 创建proc文件的三种方法(四)
- PAT 团体程序设计天梯赛-练习集 L1-016. 查验身份证
- 深入tornado中的IOStream
- JSP 页面传值方法总结
- Laravel5.5核心架构理解
- Uni-app中Class绑定与Style绑定
- asp.net core 中间件粗解
- 博客Hexo + github pages + 阿里云绑定域名搭建个人博客
- 如何创建一个 mongo 数据库并为它添加一个认证用户?