[英]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
對象本身,而不是輸入。
如果希望用戶輸入要刪除的對象的索引,則需要將userInput
為int
並執行以下操作:
if (userInput < Backpack.size()) {
Backpack.remove(userInput);
}
如果希望用戶輸入名稱或其他引用對象而不是其索引的輸入,則應編寫一個將userInput
作為參數並確定要從Backpack
刪除哪個SmallItem
並將其刪除的方法。
這是一個示例,說明每個SmallItem
具有一個類型為String
的變量name
時SmallItem
:
for (int i=0; i<Backpack.size(); i++) {
if (Backpack.get(i).name.equals(userInput) {
Backpack.remove(i);
break;
}
}
這個例子將消除第一SmallItem
的Backpack
,有一個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.