Java如何使用条件删除对象类型ArrayList
我有一个ArrayListJava如何使用条件删除对象类型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
。我想从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获得解决方案。但我不明白为什么这篇文章被否决了。