1.list集合分组转为map

// 按照学生学号分组,map的键就是学生的学号,值对应的是学生的整体信息
Map<String, List<Student>> map = studentList.stream().collect(Collectors.groupingBy(Student::getNo));

2.list集合对象中,只需要获取该对象的某一属性信息

//如获取所有学生的学生姓名
List<String> studentListNames = studentList.stream().map(Student::getName).collect(Collectors.toList());

3. list转为map.value的值可能为空

HashMap<String, Student> map = studentList.stream().collect(HashMap::new, (key, value) -> key.put(String.valueOf(value.getNO()), value), HashMap::putAll);

4.list转map。value值不为空

// 1.获取学生姓名Map<String, String> map = studentList.stream().collect(Collectors.toMap(Student::getNo, Student::getName));// 2.获取学生对象Map<String, Student> map = studentList.stream().collect(Collectors.toMap(Student::getNo, student-> student)); // 3.获取学生对象(同2效果一样)Map<String, Student> map = studentList.stream().collect(Collectors.toMap(Student::getNo, Function.identity())); // 4.键有重复的情况Map<String, Student> map = studentList.stream().collect(Collectors.toMap(Student::getName, Function.identity(), (key1, key2) -> key2));

5.list按照某一属性排序

// 学生按照年龄由小到大List<Student> sortList = studentList.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());
// 学生按照年龄降序(由大到小)
List<Student> sortList = studentList.stream().sorted(Comparator.comparing(StudentInfo::getAge).reversed()).collect(Collectors.toList());

6.最大最小值

//给list赋值
List<Double> list;
double maxX = list.stream().distinct().max((a, b) -> (Math.abs(a) > Math.abs(b)) ? 1 : -1).get();
//Math.abs(a),a的绝对值

7.多个map合并

Map<String, Long> map1;
Map<String, Long> map2;
Map<String, Long> map3;
Map<String, Long> deviceShapIdMap = Stream.of(map1, map2,map3).flatMap(x -> x.entrySet().stream()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

8.多字段分组

//根据scoreYear和studentId字段进行分组Map<String, List<Score>> map = scoreList.stream().collect(Collectors.groupingBy(score -> score.getScoreYear()+'-'+score.getStudentId()));

java8 list map相关操作汇总(不断更新~~~)相关推荐

  1. java8的lambda中的map相关操作

    0 入门详解篇 1   史上最简单入门:java8的lambda中的map相关操作:基础及注意事项图文详解 2   java8的lambda中collect接口案例及原理详解,官方文档解读 3   j ...

  2. linux修改定时后如何保存文件夹,linux定时任务的一些相关操作汇总

    本人搜罗各大网站并测试了相关定时任务的操作方便大家进行查阅和操作. 1.cron介绍 我们经常使用的是 crontab 命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我 ...

  3. Elasticsearch中别名alias相关操作(创建、更新、删除)

    1.索引别名概述 在Elasticsearch中,别名(alias)是一种将一个或多个索引(index)映射到一个逻辑名称上的方式.通过使用别名,我们可以为目标索引提供简洁.易于理解的名称,并将多个索 ...

  4. flutter中list相关操作汇总(有这一篇就够啦)

    要说,List在我的开发使用中,确实是最为频繁的了,那么如何使用list,也就成了一个问题,list提供的方法又有哪些 这些都是需要掌握理解的. 首先第一个, 对于固定长度的list,如何删除添加元素 ...

  5. linux的定时任务有多耗资源,linux定时任务的一些相关操作汇总

    本人搜罗各大网站并测试了相关定时任务的操作方便大家进行查阅和操作. 1.cron介绍 我们经常使用的是 crontab 命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我 ...

  6. 矩池云上CUDA、nvcc、cuDNN相关操作汇总

    本文汇总整理如何在矩池云上安装.使用CUDA .nvcc.cudnn的教程,后续还将不断补充,也欢迎大家在评论区提相关问题. 优质提问和反馈,将有机会获得矩池云算力豆激励- CUDA相关文章 CUDA ...

  7. Pandas中的实用dataframe操作汇总(持续更新中)

    参考链接:pandas中DataFrame操作(一) 文章目录 切片选择 loc 行筛选 生成dataframe并写入csv 根据不同分隔符.字符编码等读取csv,并更改列名 写入excel 读exc ...

  8. 工作中用到的git的相关操作(持续更新)

    目录 1. Git 简介 2. 鼠标右键 Git 选项含义: 3. 用 HTTP 的方式操作 github(提交时需要输入账号密码) (1) 在 github 中复制 HTTPS 链接 (2) 克隆项 ...

  9. HFSS常用操作汇总(持续更新)

    HFSS常用操作 操作类 convert to read only 切角 Non-Model 圆极化天线使用Discrete扫频 peakGain and GainTotal 局部区域的电流或电场等的 ...

最新文章

  1. 各种AI模型拿来就能用!五大深度学习模型库大盘点
  2. 模拟浏览器自动化测试工具Selenium之五Centos系统命令行下部署selenium环境试验
  3. 双系统用wmware挂载linux,安装Windows 和 Linux双系统(vmware) Centos7
  4. java安全编码指南之:异常处理
  5. 闲鱼研发框架应用和探索
  6. 先驱者? 革新者? 再谈《超级马力欧64》的设计魅力
  7. gradle配置_Gradle配置
  8. C#基础|面向对象之多态
  9. linux中用户识别码,C语言中设置用户识别码的相关函数的简单讲解
  10. (Step2-500题)POJ训练计划+SGU
  11. C++---继承总结
  12. 计算某个目录下所有文件的MD5值
  13. Vue数据更新视图不更新的几种解决方案
  14. window2008 、 oracle11.2g 无法imp,dmp。
  15. 【Tableau server7.0_私人版本】Tableau Server Certified Associate(Tableau CA) 考前预备
  16. 【软硬件基础】X86和X64
  17. 遇到问题---linux--crontab输出重定向不生效最全可能原因收集和解决
  18. u盘克隆服务器系统,只需4步!简单又快速的克隆U盘
  19. UTF-8编码转中文解码
  20. 还在用手机搜题?懒人必备网页搜题插件来了

热门文章

  1. 平流式沉淀池计算例题_平流式沉淀池计算例题.doc
  2. 贝塞尔曲线绘制原理 unity 3d实现绘制贝塞尔曲线
  3. 严格反馈系统matlab仿真
  4. LeetCode 1155. 掷骰子的N种方法 每日一题
  5. 计算机网络军训口号,军训口号霸气口号(精选60句)
  6. 《Total Commander:万能文件管理器》——第5.4节.更多压缩格式及插件
  7. Elasticsearch面试题(大数据面试)
  8. 使用OpenCV读取视频和视频的相似性度量
  9. Ubuntu下3G上网配置详解
  10. L1-051 打折 (5 分)