Java中ArrayList的remove方法的用法一般如下:
ArrayList<String> list = new ArrayList<String>();
list.add("abc");
list.add("efg");
list.remove(1); //Removing the second element in ArrayList.
list.remove("abc"); //Removing the element with the value "abc" in ArrayList.
Run Code Online (Sandbox Code Playgroud)
但是,存在重载不起作用的情况。
ArrayList<Integer> numbers = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)
数字。添加(1);数字。添加(2);当我尝试删除值为 2 的元素时。它给了我错误:
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.remove(ArrayList.java:387)
Run Code Online (Sandbox Code Playgroud)
所以看起来在删除数字时,我无法删除具有特定值的元素。因为计算机会假设所有的整数值作为索引,而不是元素的值。
这是一个微妙的错误。有没有其他简单的方法可以删除具有特定整数值的元素?
你需要使用一个Integer对象。
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(10);
numbers.remove(new Integer(5));
System.err.println(numbers);
//Prints [10]
Run Code Online (Sandbox Code Playgroud)