list去重并且比对的问题

一个arraylist里放了多个map 每个map里有 id,quantity,
请问如何去掉重复的map数据并且把id相同的map的quantity相加

循环判断从第一个开始有一样的就加上,然后删掉,最后就剩加完的第一个map,然后从下一个继续遍历

写循环判断呗 还能怎么搞

用循环遍历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就行

#include "stdafx.h"