Я пытаюсь удалить повторяющиеся объекты из 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);
}
}
}