使用用户输入从数组列表中删除对象

时间:2015-11-02 20:41:16

标签: java object arraylist

如果我在数组列表中有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);
        }

    }

2 个答案:

答案 0 :(得分:0)

除非您真正在Backpack.contains(t)中搜索t,否则您不想查看Backpackt是您自己的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。如果您希望它删除Backpackname的{​​{1}}而不是第一个break,请删除<StartDateTime>NaN-NaN-NaNTNaN:NaN:NaN-NaN:00</StartDateTime>语句。

答案 1 :(得分:0)

如果我写了,我想你想删除列表中的项目(t)

所以你必须用变量(t或用户输入)改变变量(item),如下所示:

String userInput = t.nextline();

public void dropItemByName(){

getopts