Java 1.7,组列出arraylist中的项目,并通过arraylist中的spesific属性进行聚合

时间:2017-10-18 13:11:57

标签: java arraylist hashmap

group list items and aggregate by an attribute

在上图中,我有一个类型为T的arraylist,

我想按属性对列表项进行分组,同时聚合另一个属性,并从结果中创建一个新的arraylist。 谢谢你的帮助... 编辑:图片链接已经死了,但我记得试图用草图解释我需要的东西而不是一段代码。当时我是java的新手,我不能在列表中做一个简单的foreach循环我会很感激,如果downvoters收回它,因为Sacoverflow说我可能会因为提问而被阻止......

1 个答案:

答案 0 :(得分:0)

您可以使用涉及forList的简单Map循环执行此操作,例如:

Map<String, Integer> map = new HashMap<String, Integer>();
List<T> list = new ArrayList<T>();
for(T t : list) {
    if(map.containsKey(t.attr1)) {
        map.put(t.attr1, map.get(t.attr1) + t.attr2);
    }else {
        map.put(t.attr1, t.attr2);
    }
}
System.out.println(map);