#java #arraylist
#java #arraylist
Вопрос:
У меня есть ArrayList ArrayList<Item>
. Я хочу удалить item2
from rack1
. Но я застрял здесь. Как я могу удалить объектный тип ArrayList с условием?
Ожидаемый результат будет [rack1,item1,1, rack1,item3,3, rack2,item2,12, rack3,item1,15, rack3,item1,15]
import java.util.*;
public class Main
{
public static class Item{
private String rackNumber, itemNumber;
private int i;
Item(String rackNumber, String itemNumber, int i){
this.rackNumber = rackNumber;
this.itemNumber = itemNumber;
this.i = i;
}
public String getRackNumber(){return rackNumber;}
public String getItemNumber(){return itemNumber;}
public int getI(){return i;}
@Override
public String toString(){
return getRackNumber() "," getItemNumber() "," getI();
}
}
public static void main(String[] args) {
Item item1, item2, item3;
item1 = new Item("rack1", "item1", 1);
item2 = new Item("rack2", "item2", 12);
item3 = new Item("rack3", "item1", 15);
String ss = "sad";
ArrayList<Item> arrayItem = new ArrayList<>();
arrayItem.add(item1);
arrayItem.add(new Item("rack1","item2", 2));
arrayItem.add(new Item("rack1", "item3", 3));
arrayItem.add(item2);
arrayItem.add(item3);
arrayItem.add(item3);
System.out.println(arrayItem);
for(Iterator<Item> iterator = arrayItem.iterator(); iterator.hasNext(); ) {
//Delete rack1 item2
}
System.out.println(arrayItem);
}
}
Комментарии:
1. Вы проверяете внутри итерации цикла, соответствует ли элемент, который вы получаете
iterator.next()
, вашим критериям, и если это так, вы просто вызываетеiterator.remove()
2. Получил решение от @Oktay. Но я не понимаю, почему этот пост был отклонен в сторону понижения.
Ответ №1:
Просто добавьте приведенные ниже коды в свой цикл for:
Item item = iterator.next();
if ("rack1".equals(item.getRackNumber()) amp;amp; "item2".equals(item.getItemNumber()) {
iterator.remove();
}
Ответ №2:
вызовите remove
метод, он возвращает логическое значение