Удаление предметов из инвентаря игрокаJAVA

Программисты JAVA общаются здесь
Anonymous
Удаление предметов из инвентаря игрока

Сообщение Anonymous »

В игре есть задание на ремонт. Существует список необходимых предметов, и когда метод вызывается, он перебирает инвентарь и, если совпадение найдено, добавляет элемент в список «toRemove», а после цикла удаляет эти предметы из инвентаря игрока, а также из обязательных предметов. Если я правильно проверил, это работает, если есть только один элемент. Теперь я не знаю, как поступить в случае дубликатов. В этой реализации он удаляет все одноимённые предметы из требуемых предметов (и, возможно, также из инвентаря игрока).

Код: Выделить всё

public boolean tryRepair(List inventory) {
List toRemove = new ArrayList();

for (Item item : inventory) {
for (RepairItem required : requiredItems) {
if (item.getName().equals(required.getName())) {
toRemove.add(item);
repairedItems.add(required);
break;
}
}
}

inventory.removeAll(toRemove);
requiredItems.removeAll(toRemove);

if (repairedItems.size() < requiredItems.size()) {
completed = false;
} else {
completed = true;
}
return true;
}
Какой подход я могу использовать для обработки дубликатов?

Вернуться в «JAVA»