list转map的几种实用方法

  • 前言
  • List<User> 转 Map<Integer,List<User>>
  • List<User> 转 Map<Integer,User>
  • List<User> 转 Map<Integer,String>
  • 自己的一些建议
  • 结语

前言

  在工作中经常遇到在代码中处理数据的情况,不免会遇到对数据集合之间的转换,下面给大家分享下 list 和 map 之间的转换。在转换下面加了一些自己的建议,请大家酌情使用。

List 转 Map<Integer,List>

这是正常转换,使用用户性别进行分组,着里只是做个实例,正常遇到需要匹配的比如班级等等,值比较多的情况,为了避免不必要的循环,对数据集合进行分组,能够提升效率。
// 使用示例
List<User> userInfos = userService.getAll();
//根据用户性别进行分组
Map<Integer, List<User>> subLineInfoMap = userInfos .stream().collect(Collectors.groupingBy(User::getSex));

List 转 Map<Integer,User>

有时我们需要获取一对一map,比如要根据某个学号去取对应的学生信息,这时候转换为 学号对应的学生的 map 更方便。
// 使用示例
Map<Long, User>userMap = userInfos.stream().collect(Collectors.toMap(User::getStuNum,Function.identity()));

List 转 Map<Integer,String>

我们不需要用户其他信息时,value值只保留其中一个字段的值,这时用下面的

// 使用示例
Map<Integer, String> collect = userInfos.stream().collect(Collectors.toMap(User::geUserNum, User::getUserName));

自己的一些建议

在我们取出数据分组完之后,在匹配处理数据时,为避免数据不存在时走一些没用的逻辑,可以取出 key 做一个是否包含的判断
// 使用示例
List<Data> datas= dataService.getAll();
Map<Integer, String> collect = userInfos.stream().collect(Collectors.toMap(User::geUserNum, User::getUserName));Set<Integer> userNumSet = collect .keySet();
for (Data data : datas) {//一些逻辑需要匹配上对应的数据才去做处理时这样去做if (userNumSet .contains(data .getUserNum())){.....}
}

结语

不是职业博主,记录自己遇到的一些奇葩问题及一些知识点,顺便分享给大家,有什么不正确或者疑问,可以留言评论,在看到的第一时间回复,谢谢!

【list转map的几种实用方法】相关推荐

  1. ipa解包打包工具_ios打包ipa的四种实用方法(.app转.ipa)

    总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选 ...

  2. ios打包ipa的四种实用方法(.app转.ipa)

    [原]ios打包ipa的四种实用方法(.app转.ipa) 总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏- ...

  3. java获取map遍历,Map获取键值,Map的几种遍历方法总结(推荐)

    Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象. Map的接口 Map---实现Map Map.Entry--Map的内部类,描述Map中的按键/数值对. S ...

  4. 怎么将file转换为html,怎么将PDF文件转换为HTML?分享四种实用方法!

    原标题:怎么将PDF文件转换为HTML?分享四种实用方法! 在我们日常学习和日常工作中,如果想要将PDF文件转换为HTML文件要怎么办呢?随着需求的增加,我们需要会的技能也要增加了.不止要将PDF文件 ...

  5. 【原】ios打包ipa的四种实用方法(.app转.ipa)

    原文地址为: [原]ios打包ipa的四种实用方法(.app转.ipa) 总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xc ...

  6. 网站推广策略-网站推广120种实用方法_打杂的_新浪博客

    介绍实用有效的企业网站推广方法,网站推广计划,网站推广方案和网站推广案例等.<网站推广策略>用网络营销的系统性思想研究网站推广,将网站推广作为企业网络营销策略的组成部分. 网站推广120种 ...

  7. 网站推广120种实用方法系列连载

    ·关联网站推广策略(1)--关联网站的作用 (2005-04-12) [摘要]:关联网站推广策略的基本思想是值得借鉴的,只要在实际应用中合理利用关联网站之间的关系,不要使之成为虚假网站流量的工具. ...

  8. 手机文件转存U盘,2种实用方法任你选择,3分钟学会不再求人教

    手机文件转存U盘,2种实用方法任你选择,3分钟学会不再求人教 随着手机功能越来越多,我们手机中保存的文件也越来越多,文件一旦过多就会引起手机卡顿,由于文件比较有纪念意义,又不舍得删除,这时候我们就需要 ...

  9. 在web页面上快速生成二维码的三种实用方法

    转载自:在web页面上快速生成二维码的三种实用方法 二维码是桌面和移动端快速分享的高效手段之一,这里介绍两个不错的快速开发二维码的方法,和大家分享一下~~ 方法1:使用极客标签提供的二维码快速生成服务 ...

最新文章

  1. JAVA面向对象-----final关键字
  2. Java程序中Timer的用法
  3. 做diff_Vue3.0时代你必须了解的:diff算法原理和优化
  4. NSUserDefaults设置bool值重新启动后bool仅仅设置丢失问题
  5. matlab+snapshot采集图片
  6. 负载测试与压力测试的区别
  7. 运行程序时java后面跟的是文件名对吗_运行程序时java命令后面跟的是文件名。...
  8. 乐高(LEGO)在线购物店面剖析
  9. echarts label加边框_echarts 添加自定义label标签
  10. redis setnx原子性_不支持原子性的 Redis 事务也叫事务吗?
  11. g++默认参数_C ++默认参数| 查找输出程序| 套装2
  12. 用python实现朴素贝叶斯算法_朴素贝叶斯算法 python 实现
  13. 吴恩达机器学习 4.逻辑回归(Logistic Regression)
  14. Windows解除网速限制,Windows性能提升,性能优化
  15. 标签树状结构JSP中树状图的代码实现
  16. PostgreSQL 11.2 手册 (中文版) PostgreSQL中文社区
  17. CSS - 类型、类和ID选择器 - 个人笔记
  18. TDCS刺激强度对健康受试者工作记忆的影响
  19. Riak 简介,第 1 部分: 与语言无关的 HTTP API
  20. Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍-扫盲篇

热门文章

  1. 给Jenkins加https证书
  2. Linux 获取上个月的第一秒和上个月的最后一秒
  3. Python pip配置国内源
  4. CRFNet(CameraRadarFusionNet)代码测试
  5. 【django】Ajax Post请求CSRF认证问题
  6. 关于android输入法
  7. 水果FL Studio/Cubase/Studio one音乐宿主软件对比
  8. creator shader:从零开始,用shader画个彩虹
  9. 帆软iframe无法加载 in a frame because it set ‘X-Frame-Options‘ to ‘sameorigin‘
  10. 【用户画像】ClickHouse中的数据类型、表引擎介绍及使用、项目几个问题的解决办法