在开发当中难免list存在嵌套的情况,通常的实现方式是使用两个for循环嵌套,这样使得执行步骤增加,大大降低了系统的性能。

项目背景: 存在te_questionmain表和te_questionsub表,是一对多的关系,学生段抽题从这两张表中根据papermain字段将List和List全部查出来,为了保证数据不重复,不适用sql的连接表查询语句;系统应用的java版本是1.7,因此不具备1.8以后的list筛选功能。实现方式只能是查出两个list集合以后,将List插入到对应的List当中。

使用两层for循环的实现的方式:

List questionmains2=new ArrayList();

for(Questionmain questionmain:questionmains){

for(Questionsub questionsub:questionsubs){

Listquestionsubs2=new ArrayList();

if(questionsub.getQuestionmainID.equals(questionmain.getId)){

questionsubs2.put(quesionsub);

}

questionmain.setQuestionsubList(questionsubs2)

}

}

使用mutimap的实现方式:

//将questionsub放到multimap中

MultimapquetionSubMutimap=ArrayListMultimap.create();

Iterator iterator =questionSubs.iterator();

while(iterator.hasNext()){

QuestionSub questionSub=(QuestionSub)iterator.next();

quetionSubMutimap.put(questionSub.getPaperMainId(), questionSub);

}

Iterator iterator2=questionMains.iterator();

while(iterator2.hasNext()){

QuestionMain questionMain=(QuestionMain)iterator2.next();

ListquestionSubs3=new ArrayList();

// 将collection中存在的questionsub实体放入到list中

if(quetionSubMutimap.containsKey(questionMain.getId())){

CollectionquestionSubs2=quetionSubMutimap.get(questionMain.getId());

for (QuestionSub questionSub : questionSubs2) {

questionSubs3.add(questionSub);

}

}

questionMain.setQuestionsubList(questionSubs3);

}

从该实例中我们可以看出multimap是一个id对应多个实体,且在存放的过程中自动将实体进行归类,形成格式是Multimap>.

java版本 multimap,java-multimap使用相关推荐

  1. MAC自带的Java版本以及Java安装目录查看

    MAC自带的Java版本以及Java安装目录查看 电脑版本 macOS Mojave version 10.14 操作 1.Java版本 在Terminal下输入 java -version 如图 2 ...

  2. java版本lstm_LSTM java 实现

    由于实验室事情缘故,需要将Python写的神经网络转成Java版本的,但是python中的numpy等啥包也不知道在Java里面对应的是什么工具,所以索性直接寻找一个现成可用的Java神经网络框架,于 ...

  3. linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  4. (004) java后台开发之Eclipse(Neon) 版本安装Java EE插件

    Eclipse Neon Java版本安装Java EE插件 Help→Install New Software 地址:Neon - http://download.eclipse.org/relea ...

  5. java安装版本哪种好_我怎么知道我安装了哪个版本的Java?

    问题描述 我想开始玩java(最终到了可以为android或web编写基本小程序的地步),但是我已经在我的计算机上(从过去的实验中)弄糟了java. 我不确定我拥有哪个版本的Java,并且想知道是否有 ...

  6. 安装了多个java 如何切换java版本

    安装了多个java 如何切换java版本 问题描述 平常用的是java8,最近在学习java的新特性.这就需要从java8往更高的java版本切换.由于还在使用java8,测试完新特性后我需要再切换回 ...

  7. Java 版本变更列表 (Java SE 8 ~ Java SE 18 )

    java 版本变更列表 Java SE 8 Java SE 9 Java SE 10 Java SE 11 Java SE 12 Java SE 13 Java SE 14 Java SE 15 Ja ...

  8. java检查版本_如何检查Java版本

    java检查版本 Sometimes we need to check the Java version while executing a java program. We could be dev ...

  9. 3.1_2 JavaSE入门 P1 【Java基础】Java语言概述、JDK编译

    相关链接 Excel目录 目录 Part1 Java语言概述 1 Java语言概述 1.1 Java发展史 1.2 java应用平台 1.3 跨平台原理 1.4 JVM JRE JDK 1.5 Ora ...

  10. Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass

    从 Github 中下载 Demo 时遇到问题 java.lang.IllegalStateException: Cannot load configuration class: com.cxytia ...

最新文章

  1. 《Java程序员职场全攻略:从小工到专家》连载十二:大家都是个什么身价
  2. SQL Server Replication 中关于视图的点滴
  3. mysql数据记录更新版本问题_MySQL版本升级遇到的问题小结
  4. 滴水穿石--MYSQL导入导出常用命令
  5. 商务搜索引擎_2019年中国网民搜索引擎使用情况研究报告
  6. AgileEAS.NET之数据关系映射ORM
  7. 测试人员,今天再不懂BDD就晚了!
  8. 乐观锁-version的使用
  9. php webservice 上传大文件,JS和WebService大文件上传代码分享
  10. 一次非常成功的项目经验分享和糟糕项目的对比
  11. python 导出为csv_批量导出SolidWorks模型点坐标值
  12. GIS+BIM专题二:SuperMap对接DGN数据流程
  13. 计算机平面设计主要学什么,学习平面设计都有哪些课程?
  14. 跟二项分布相关的统计检验方法
  15. 块存储、文件存储、对象存储的区别
  16. 使用python修复文件乱码
  17. SAS系统从入门到放弃?不能放弃,它是数据科学家必备技能
  18. 【Tomcat】一分钟教你eclipse如何配置tomcat(二)
  19. 投影仪显示无法连接服务器失败怎么办,电脑和投影仪连不上怎么办
  20. 高性能服务器设计[转自腾讯km,由qzhang同学翻译]

热门文章

  1. MySql子查询有多个结果的查询方法
  2. 消费者厌恶手机企业的高定价,苹果和国产手机销量都显著下滑
  3. HMI-8-[Qt 播放GIF动画]:启动画面的实现
  4. 蒜头君的数轴:正反gcd
  5. 【D3使用教程】(4) 添加数轴
  6. Java Swing弹出对话框之选择对话框OptionDialog
  7. html推荐教程,html 教程推荐
  8. Python-二维码处理(qrcode、pyzbar)
  9. 又一起百兆光猫改千兆光猫案例GXD G2413S对应HQST H82411SP
  10. inprivate浏览是什么意思_InPrivate浏览是什么?怎么用?