在上图中,我有一个类型为T的arraylist,
我想按属性对列表项进行分组,同时聚合另一个属性,并从结果中创建一个新的arraylist。 谢谢你的帮助... 编辑:图片链接已经死了,但我记得试图用草图解释我需要的东西而不是一段代码。当时我是java的新手,我不能在列表中做一个简单的foreach循环我会很感激,如果downvoters收回它,因为Sacoverflow说我可能会因为提问而被阻止......
答案 0 :(得分:0)
您可以使用涉及for
和List
的简单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);