簡體   English   中英

使用用戶輸入從數組列表中刪除對象

[英]Remove object from array list with user input

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

    }

除非您實際上是在Backpack搜索t ,否則您不希望檢查Backpack.contains(t) t是您的Scanner對象本身,而不是輸入。

如果希望用戶輸入要刪除的對象的索引,則需要將userInputint並執行以下操作:

if (userInput < Backpack.size()) {
    Backpack.remove(userInput);
}

如果希望用戶輸入名稱或其他引用對象而不是其索引的輸入,則應編寫一個將userInput作為參數並確定要從Backpack刪除哪個SmallItem並將其刪除的方法。

這是一個示例,說明每個SmallItem具有一個類型為String的變量nameSmallItem

for (int i=0; i<Backpack.size(); i++) {
    if (Backpack.get(i).name.equals(userInput) {
        Backpack.remove(i);
        break;
    }
}

這個例子將消除第一SmallItemBackpack ,有一個name匹配userInput 如果您希望它刪除Backpack具有該name值的每個SmallItem ,而不只是第一個,請刪除break語句。

如果我寫了,我想你想從清單中刪除項目(t)

因此,您必須通過變量(t或用戶輸入)來更改變量(項目),如下所示:

字符串userInput = t.nextline();

公共無效dropItemByName(){

if(Backpack.contains(userInput)) {
      Backpack.remove(userInput);
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM