发布网友 发布时间:2024-05-09 02:29
共1个回答
热心网友 时间:2024-06-15 12:51
1229?感觉不懂啊!是返回1239吧??如果是,还想请问List是awt下的还是util下的? 不管是哪个,也就是说list里面有4个集合列对吧。。。 那么可以这样先把id,dj,dw的值用字符串形式相加,用equals判断是否相等, 把id,dj,dw相加后相等的字符串对应的xj值累加后放入新的集合 把不相等的放入另一个集合再次遍历累加后放入新集合 Map<String,integer> newStrs= new Map<String,integer>(); Map<String, integer> temp =null; Map<String,integer> re = new Map<String,integer>(); for(int i; i<list.size(); i++) { String str = ""+id.get(i)+dj.get(i).dw.get(i);//将list的id,dj,dw列相加得到一个字符串 newStrs.put(str, xj.get(i));//将得到的字符串,和xj列的值压入Map对象 } while(newStrs.size()>0) {//如果newStr对象依然存在值 temp = new Map<String, integer>(); int count = newStrs.get(newStr.keySet().get(0));//拿到newStr对象第一个键所对应的值 for(int i=0; i<newStrs.size();i++) {//遍历newStrs if(newStrs.keySet().get(0).equals(newStrs.keySet().get(i + 1)){//比较newStr的第一个键和i+1的键 count += xj.get(i+1);//如果键相同将键对象的int值累加 } else { temp.put(newStrs.keySet().get(i),newStrs.get(i));//如果不同,则把不同的键值放入临时的Map对象 } } re.add(newStr.keySet().get(0), count);//累加后的键和值,加入reMap对象 newStrs = temp;//将临时Map对象的值给newStrs,进行下次循环 } //循环结束后吧re的键转换回来return就行了