如果我在数组列表中有10个对象,并且我想根据用户输入删除特定的对象,我该怎么做?
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);
}
}
答案 0 :(得分:0)
除非您真正在Backpack.contains(t)
中搜索t
,否则您不想查看Backpack
。 t
是您自己的Scanner
对象,而不是输入。
如果您希望用户输入要删除的对象的索引,那么您希望userInput
成为int
并执行此操作:
if (userInput < Backpack.size()) {
Backpack.remove(userInput);
}
如果您希望用户输入引用该对象而不是索引的名称或其他输入,那么您应该编写一个方法,将userInput
作为参数并确定哪个SmallItem
是要从Backpack
中删除并将其删除。
以下是SmallItem
每个name
类型为String
的变量for (int i=0; i<Backpack.size(); i++) {
if (Backpack.get(i).name.equals(userInput) {
Backpack.remove(i);
break;
}
}
时如何执行此操作的示例:
SmallItem
此示例将删除Backpack
中与name
匹配的userInput
中的第一个SmallItem
。如果您希望它删除Backpack
中name
的{{1}}而不是第一个break
,请删除<StartDateTime>NaN-NaN-NaNTNaN:NaN:NaN-NaN:00</StartDateTime>
语句。
答案 1 :(得分:0)
如果我写了,我想你想删除列表中的项目(t)
所以你必须用变量(t或用户输入)改变变量(item),如下所示:
String userInput = t.nextline();
public void dropItemByName(){
getopts