问题描述
- list去重并且比对的问题
-
一个arraylist里放了多个map 每个map里有 id,quantity,
请问如何去掉重复的map数据并且把id相同的map的quantity相加
解决方案
python中list去重问题
Python中List的去重问题
解决方案二:
写循环判断呗 还能怎么搞
解决方案三:
用循环遍历arraylist,然后对map进行比较,你可以使用map1.equals(map2),如果相等的话,就返回true,然后你就可以删除。过滤之后,在进行相加就可以
解决方案四:
一个一个取map的值,然后放进list中,放进去之前,先判断是否存在id,如查存在,刚相加quantity。
解决方案五:
先把你的 arraylist =》 Map>
第二步 循环map 并把list 在循环相加
解决方案六:
先把你的 arraylist =》 Map《id,List《quantity》》
第二步 循环map 并把list 在循环相加
解决方案七:
public class Sample {
public static void main(String[] args) {
//构造list
List<Map<String,Integer>> list=new ArrayList<Map<String,Integer>>();
Integer[] quantity=new Integer[]{12,13,14,12,13,16,13,14,12,13};
for (int i = 0; i < quantity.length; i++) {
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("id", i);
map.put("quantity", quantity[i]);
list.add(map);
if(i==2 || i==4 || i==6 ){
map.put("id", i);
map.put("quantity", quantity[i]);
list.add(map);
}
}
//去重
Set<Map<String,Integer>> set=new HashSet<Map<String,Integer>>();
for (int j=list.size()-1; j>=0; j--) {
set.add(list.get(j));
}
//求和
int sum=0;
for (Iterator<Map<String, Integer>> it = set.iterator(); it.hasNext();) {
Map<String, Integer> map = (Map<String, Integer>) it.next();
sum+=map.get("quantity");
}
System.out.println(set.toString());
System.out.println(sum);
}
}
解决方案八:
没看清楚 搞错了 (⊙﹏⊙)b
解决方案九:
对list进行循环取值,然后比较map就行
解决方案十:
循环判断从第一个开始有一样的就加上,然后删掉,最后就剩加完的第一个map,然后从下一个继续遍历
时间: 2024-09-20 00:03:51