Java 使用用户输入从数组列表中删除对象
如果我在一个数组列表中有10个对象,并且我想根据userinput删除一个特定的对象,我该如何做Java 使用用户输入从数组列表中删除对象,java,object,arraylist,Java,Object,Arraylist,如果我在一个数组列表中有10个对象,并且我想根据userinput删除一个特定的对象,我该如何做 public ArrayList<SmallItem> Backpack = new ArrayList<SmallItem>(); Scanner t = new Scanner(System.in); String userInput = t.next(); public void dropItemByName() { if(Backpack.contains(
public ArrayList<SmallItem> Backpack = new ArrayList<SmallItem>();
Scanner t = new Scanner(System.in);
String userInput = t.next();
public void dropItemByName() {
if(Backpack.contains(t)) {
Backpack.remove(item);
}
}
public ArrayList Backpack=new ArrayList();
扫描器t=新扫描器(System.in);
字符串userInput=t.next();
public void dropItemByName(){
if(背包内含物(t)){
背包。移除(物品);
}
}
除非您在背包
中实际搜索t
,否则您不想检查Backpack.contains(t)
t
是您的扫描仪
对象本身,而不是输入
如果希望用户输入要删除的对象的索引,则需要将userInput
设置为int
,并执行以下操作:
if (userInput < Backpack.size()) {
Backpack.remove(userInput);
}
此示例将删除
Backpack
中的第一个SmallItem
,它具有与userInput
匹配的name
。如果您想让它删除Backpack
中的每个SmallItem
,而不是第一个name
值,只需删除break
语句。如果我将其写入,我想您想从列表中删除该项(t)
因此,您必须通过变量(t或用户输入)更改变量(项),如下所示:
字符串userInput=t.nextline()
public void dropItemByName(){
用户是否输入了一个对象或对象本身的索引?考虑使用<代码> MAP>代码>而不是<代码>列表>代码>。ArayLIST和USER输入之间有什么联系?
for (int i=0; i<Backpack.size(); i++) {
if (Backpack.get(i).name.equals(userInput) {
Backpack.remove(i);
break;
}
}
if(Backpack.contains(userInput)) {
Backpack.remove(userInput);
}
}