首页 > 编程知识 正文

java请使用最高版本,欢迎使用手机版本

时间:2023-05-05 06:58:32 阅读:262343 作者:4404

在开发当中难免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>.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。