【发布时间】:2015-11-06 13:46:04
【问题描述】:
我正在尝试从ArrayList 中删除重复的对象,并对某个字段的值求和。例如:
如果我有对象“硬件”的ArrayList:
{[Name: Ram, Quantity: 2],
[Name: Keyboard, Quantity: 3],
[Name: Mouse, Quantity: 5],
[Name: Keyboard, Quantity 5]}
我想编写一个函数来查找重复项并对数量求和。在这种情况下,键盘是重复的,因此最终的 ArrayList 应如下所示:
{[Name: Ram, Quantity: 2],
[Name: Keyboard, Quantity: 8],
[Name: Mouse, Quantity: 5]}.
我已经尝试过了,它有时似乎可以工作,但有时它会丢失元素。
List<Hardware> myList = new ArrayList<Hardware>();
myList.add(new Hardware("Ram", 2);
myList.add(new Hardware("Keyboard", 3);
myList.add(new Hardware("Mouse", 5);
myList.add(new Hardware("Keyboard", 5);
for(int i = 0; i < list.size(); i++){
Hardware current = list.get(i);
for(int j = 1; j < list.size(); j++){
Hardware compare = list.get(j);
if(current.getName().equals(compare.getName)){
current.setQuantity(current.getQuantity()
+ compare.getQuantity())
list.remove(compare);
}
}
}
【问题讨论】:
标签: java loops arraylist iteration