簡體   English   中英

從列表中刪除整數

[英]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是一個整數。 這將返回truefalse

B :添加

itemsToDrop.add(item)

C :要刪除

itemsToDrop.remove(item)

編輯:為了清楚起見,最初的帖子包含3個我回答的問題

暫無
暫無

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

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