Java 从列表中删除整数

Java 从列表中删除整数,java,list,Java,List,如何正确地检查列表是否定义了整数 private List<Integer> itemsToDrop = new ArrayList<Integer>(); private int lastRateAdded, lastDropAdded; if(itemsToDrop.contains(lastDropAdded)) { itemsToDrop.remove(lastDropAdded); } itemsToDrop.add(DropConfig.it

如何正确地检查列表是否定义了整数

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];
private List itemsToDrop=new ArrayList();
private int lastRateAdded,lastDropAdded;
if(itemsToDrop.contains(lastDropAdded))
{
itemsToDrop.remove(lastDropAdded);
}
itemsToDrop.add(DropConfig.itemDrops[npc][1]);
LastRateAdd=itemRate;
lastDropAdded=DropConfig.itemDrops[npc][1];
但是,这会引发以下错误

java.lang.IndexOutOfBoundsException:索引:526,大小:1


因此,我需要弄清楚如何正确地检查列表中是否存储了整数

假设您有一个列表

private List<Integer> itemsToDrop = new ArrayList<Integer>();
,其中项为整数。这将返回
true
false

B:添加

itemsToDrop.add(item)
C:删除

itemsToDrop.remove(item)
编辑:为了澄清,最初的帖子包含了我回答的3个问题

List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 10, 42));
if (list.contains(10)) {
    list.remove(10); // IOOBE
}

这样,您就可以强制编译器使用
List#remove(Object)
方法。

看起来异常实际上与DropConfig类相关,而不是与List相关。itemsToDrop是一个空的Arraylist,您在其中填充了datda吗?异常与List相关,我已经调试过了@侯赛因,我不确定。我只是在学习并遵循我所得到的步骤。也许我错过了什么,这就是我的问题。我试图向数组列表中添加内容,但问题是,在检查是否存在要删除的内容时,如果为false,则返回true。@Ivaylo,它甚至没有经过第一次检查,检查自动返回true并尝试删除整数,即使它不可用。这是一个非常好的问题。任何投反对票的人都不明白。这正是我要写的,但你写得更快。向上投票:)伟大的观察:)+1来自我,谢谢你!我知道我的代码是正确的(从技术上讲是正确的),但这是有道理的。还在学习!这是有效的。最初未经编辑的问题包含3个问题:A:如何检查列表中是否有整数?B:如何在列表中添加整数?C:我如何从列表中删除一个整数?然后为我的否决票道歉。情况对我来说并不明显。我的投票现在被锁定,因为除非你编辑答案,否则投票时间超过5小时。没关系,我编辑我的答案是为了澄清。您可以随时查看编辑日志中的问题。祝你一切顺利
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 10, 42));
if (list.contains(10)) {
    list.remove(10); // IOOBE
}
List<Integer> list = new ArrayList<Integer>(Arrays.asList(5, 10, 42));
if (list.contains(10)) {
    list.remove((Integer) 10);
}