工作过程中,遇到了一个相对复杂的数据处理。一个list里套着list,还要去重显示。于是想到了java的迭代器--Iterator。
迭代器基础用法
1.使用方法 iterator()要求容器返回一个 Iterator。第一次调用Iterator 的next()方法时,它返回序列的第一个元素。
2.使用next()获得序列中的下一个元素。
3.使用hasNext()检查序列中是否还有元素。
4.使用remove()将上一次返回的元素从迭代器中移除。
代码解析
listGroup = groupService.findAllGroup(userID); //从后端传回数据 Set set = new HashSet(); //实例化一个hashset,set中不放重复的数据 for ( Group group:listGroup){ //遍历set,获取不重复的名字 set.add(group.getName()); } Iterator it = set.iterator(); //单个遍历 List resultList = new ArrayList(); while (it.hasNext()){ //如果有下一个的话 String name = it.next().toString(); String str = null; for (Group group:listGroup){ if(group.getName().equals(name)){ if(str==null){ str=group.getServiceName(); }else { str=str+","+group.getServiceName(); //拼接字符串 } } } List list = new ArrayList(); for(Group group:listGroup){ if(group.getName().equals(name)){ //判断名称是否相符 group.setServiceName(str); list.add(group); } } resultList.add(list.get(0)); } modelMap.addAttribute("listGroup",resultList); //设置modelMap的一个属性叫listGroup