[英]Removing an integer from a list
如何正確檢查列表是否具有已定義的整數?
private List<Integer> itemsToDrop = new ArrayList<Integer>();
private int lastRateAdded, lastDropAdded;
if(itemsToDrop.contains(lastDropAdded))
{
itemsToDrop.remove(lastDropAdded);
}
itemsToDrop.add(DropConfig.itemDrops[npc][1]);
lastRateAdded = itemRate;
lastDropAdded = DropConfig.itemDrops[npc][1];
但是,這會引發以下錯誤
java.lang.IndexOutOfBoundsException:索引:526,大小:1
所以,我需要弄清楚如何正確檢查整數是否存儲在列表中
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 10, 42));
if (list.contains(10)) {
list.remove(10); // IOOBE
}
上面代碼的問題是你實際上沒有調用List#remove(Object)
而是List#remove(int)
,它刪除了給定索引處的元素(並且索引10處沒有元素)。
改為使用:
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 10, 42));
if (list.contains(10)) {
list.remove((Integer) 10);
}
這樣,您強制編譯器使用List#remove(Object)
方法。
假設你有一個清單
private List<Integer> itemsToDrop = new ArrayList<Integer>();
回答你的問題:
答 :要檢查整數是否屬於整數列表,可以使用.contains()
itemsToDrop.contains(item)
,其中item是一個整數。 這將返回true
或false
。
B :添加
itemsToDrop.add(item)
C :要刪除
itemsToDrop.remove(item)
編輯:為了清楚起見,最初的帖子包含3個我回答的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.