如何从列表中删除整数?

我需要从整数arraylist中删除整数。 我对字符串和其他对象没有任何问题。 但是当我删除时,整数被视为索引而不是对象。

List list = new ArrayList(); list.add(1); list.add(2); list.add(300); list.remove(300); 

当我试图删除300我得到: 06-11 06:05:48.576: E/AndroidRuntime(856): java.lang.IndexOutOfBoundsException: Invalid index 300, size is 3

这是正常的,列表的.remove()方法有两个版本:一个以整数作为参数并删除该索引处的条目,另一个以generics类型作为参数(在运行时,是一个Object )并将其从列表中删除。

并且方法的查找机制总是首先选择更具体的方法…

你需要:

 list.remove(Integer.valueOf(300)); 

为了调用.remove()的正确版本。

使用indexof查找项的索引。

 list.remove(list.indexOf(300)); 

尝试(传递Integer ,对象,而不是int ,原语) –

 list.remove(Integer.valueOf(300)); 

调用正确的方法 – List.remove(Object o)

请尝试以下代码从列表中删除整数,

 public static void main(String[] args) { List lIntegers = new ArrayList(); lIntegers.add(1); lIntegers.add(2); lIntegers.add(300); lIntegers.remove(new Integer(300)); System.out.println("TestClass.main()"+lIntegers); } 

如果通过传递原语来删除项目,那么它将把它作为索引而不是值/对象

 Use list.remove((Integer)300);