当前位置: 首页 > news >正文

使用hashMap优化两次for循环

使用hashMap优化两次for循环

需求:

有一学生表,需要从中分析出每个学校的学生各项数据之和,比如说每个学校的男女数量。

实现:

查出所有记录后,使用Stream的group by对学校进行分组,结果是一个map,键是学校id,值是这个学校的学生列表。

接着循环这个map,外层循环map的key(学校),内层循环所有的学生列表,接着将需要的数据放入学校数据dto列表,每个dto表示一个学校。

这就会导致效率上的问题——每次循环学校的时候,都要重复循环一遍学生列表。


优化:

可以这样优化,新建一个hashMap,以学校的id为key,学校数据dto为值。

只需要循环一次学生列表,获取学校id,判断map中该学校dto是否存在,存在就取出来,不存在就新建并存入map中和放入学校数据dto列表,接着继续修改这个dto(例如累加学生男女数量)。

也就是说利用这个hashMap来临时存储所有的学校id和对应的学校dto数据,就可以避免多次对列表的for循环了。

相关文章:

  • Spring Boot整合Shiro入门教程
  • jpa关联关系注解 入门教程(一)
  • jpa关联关系注解 入门教程(二)
  • springboot 将对象装换为map
  • springboot 将map装换为java对象
  • json header
  • js split console.log() 不生效的原因之一
  • js 以逗号分隔的数字字符串分割成数字数组
  • element多选框checkbox对后台数据进行回显(显示被选中状态)
  • checkbox获得已选的数字集合而不是文字集合
  • java 对string list进行join拼接操作
  • string数组转int数组 java
  • java 将以逗号分割的数字字符串转为数字列表
  • Spring Data Specifications入门教程
  • Job for docker.service failed because the control process exited with error
  • Angular 响应式表单 基础例子
  • iOS | NSProxy
  • Java教程_软件开发基础
  • Laravel 实践之路: 数据库迁移与数据填充
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从零开始学习部署
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 蓝海存储开关机注意事项总结
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何学习JavaEE,项目又该如何做?
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 为什么要用IPython/Jupyter?
  • 主流的CSS水平和垂直居中技术大全
  • 积累各种好的链接
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​520就是要宠粉,你的心头书我买单
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • (6)添加vue-cookie
  • (9)STL算法之逆转旋转
  • (done) 两个矩阵 “相似” 是什么意思?
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (一)基于IDEA的JAVA基础12
  • (转)http-server应用
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net core 6 redis操作类
  • .net Signalr 使用笔记
  • .NET 的程序集加载上下文
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET的微型Web框架 Nancy
  • .net对接阿里云CSB服务
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth