Java如何使用条件删除对象类型ArrayList

Java如何使用条件删除对象类型ArrayList,java,arraylist,Java,Arraylist,我有一个ArrayListArrayList。我想从rack1中删除item2。但我被困在这里了。如何使用条件删除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 rac

我有一个ArrayList
ArrayList
。我想从
rack1
中删除
item2
。但我被困在这里了。如何使用条件删除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);
    }
}
import java.util.*;
公共班机
{
公共静态类项{
私有字符串rackNumber、itemNumber;
私人互联网i;
项目(字符串rackNumber、字符串itemNumber、int i){
this.rackNumber=rackNumber;
this.itemNumber=itemNumber;
这个。i=i;
}
公共字符串getRackNumber(){返回rackNumber;}
公共字符串getItemNumber(){return itemNumber;}
public int getI(){return i;}
@凌驾
公共字符串toString(){
返回getRackNumber()+”,“+getItemNumber()+”,“+getI();
}
}
公共静态void main(字符串[]args){
第1项、第2项、第3项;
项目1=新项目(“框架1”、“项目1”、1);
项目2=新项目(“框架2”、“项目2”、12);
项目3=新项目(“框架3”、“项目1”、15);
字符串ss=“sad”;
ArrayList arrayItem=新的ArrayList();
阵列项目新增(第1项);
增加(新项目(“框架1”、“项目2”和“项目2”);
阵列项目添加(新项目(“机架1”、“项目3”和“3”);
阵列项目添加(第2项);
阵列项目添加(第3项);
阵列项目添加(第3项);
System.out.println(arrayItem);
for(Iterator Iterator=arrayItem.Iterator();Iterator.hasNext();){
//删除第1项第2项
}
System.out.println(arrayItem);
}
}

调用
删除
方法,它返回布尔值

只需在for循环中添加以下代码:

Item item = iterator.next();
if ("rack1".equals(item.getRackNumber()) && "item2".equals(item.getItemNumber()) {
    iterator.remove();
}

您可以在循环迭代中检查使用
iterator.next()
获得的项是否满足您的条件,如果满足,则只需调用
iterator.remove()
即可从@Oktay获得解决方案。但我不明白为什么这篇文章被否决了。