封装部门和列表不放在一个列表里的列表

	
设计的来源:当从数据库拿到的数据不是将区域和该区域对应的一些属性放在一个bean里的情形时,但是页面展示需要将区域和它对应的内容放在同一个bean中
设计的思路:-->  1.先创建一个Bean,包含我最终要展示的属性
	      2.创建一个放置该bean的列表 eList2
	      3.创建一个放置区域的列表 groupNames2
	      4.遍历未封装好的列表eventByGroupList,将区域加入区域列表groupNames2
	      5.对区域列表groupNames2去重
	      6.循环交叉遍历eventByGroupList和groupNames2,groupNames2在外层,eventByGroupList在内层,
                 针对每个区域和eventByGroupList中的每个bean进行匹配,如匹配的就取其值。一轮区域遍历完就将被
	        赋值的bean加入到目标list-eList2中
 
             具体代码如下:
    


  //事件按部门统计
    	eventByGroupsModel=decisionSectionService.listEventByGroup(decisionInput);
    	eventByGroupList=eventByGroupsModel.getList();
    	//事件按部门和区域统计列表
    	List<EventByGroupOrDomain> eList2=new ArrayList<EventByGroupOrDomain>();
        //部门列表
    	List<String> groupNames2=new ArrayList<String>();
    	//得到区域列表
    	for (int i = 0; i < eventByGroupList.size(); i++) {
    		if(eventByGroupList.get(i).getGroupName()==null){
    			eventByGroupList.get(i).setGroupName("");
    		}
    		groupNames2.add(eventByGroupList.get(i).getGroupName());
    		
		}
    	//区域列表去重
    	Set set2=new HashSet();
    	List<String> newgroupNames2=new ArrayList();
    	for (Iterator iter2 = groupNames2.iterator(); iter2.hasNext();) {
			Object ele2 = (Object) iter2.next();
			if(set2.add(ele2)){
				newgroupNames2.add((String) ele2);
			}
		}
	封装目标list
         注意:bean构建要放在循环里,避免model每次都被最新的那个覆盖,这样每次都重新创建一个bean
 
    	//事件类型  1,10,9,11,13
    	for (int i = 0; i < newgroupNames2.size(); i++) {
    		EventByGroupOrDomain eventByGroupOrDomain2=new EventByGroupOrDomain();//bean构建要放在循环里,避免model每次都被覆盖
    		 for (int j = 0; j < eventByGroupList.size(); j++) {
    			if(newgroupNames2.get(i).equals(eventByGroupList.get(j).getGroupName())){
    				 eventByGroupOrDomain2.setGroupName(newgroupNames2.get(i));
    				 eventByGroupOrDomain2.setHasSubset(eventByGroupList.get(j).getHasSubset());
    				 eventByGroupOrDomain2.setGroupId(eventByGroupList.get(j).getGroupId());
    				 eventByGroupOrDomain2.setParentId(eventByGroupList.get(j).getParentId());
    			 
    			 if(eventByGroupList.get(j).getEventType()==1){// 违规外联
    				  eventByGroupOrDomain2.setViolationCount(eventByGroupList.get(j).getOpenNum());
    			 }
    			 if(eventByGroupList.get(j).getEventType()==10){//聊天工具
   				      eventByGroupOrDomain2.setChatTool(eventByGroupList.get(j).getOpenNum());
   			      }
    			 if(eventByGroupList.get(j).getEventType()==9){//流媒体
  				      eventByGroupOrDomain2.setStream(eventByGroupList.get(j).getOpenNum());
  			      }
    			 if(eventByGroupList.get(j).getEventType()==11){//资源滥用
 				      eventByGroupOrDomain2.setResourceAbuse(eventByGroupList.get(j).getOpenNum());
 			      }
    			 if(eventByGroupList.get(j).getEventType()==13){//网络游戏
				      eventByGroupOrDomain2.setNetGame(eventByGroupList.get(j).getOpenNum());
			      }
    			}
			}
    		eList2.add(eventByGroupOrDomain2);//将bean加到列表中去
		}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值