在使用ArrayList<Integer>时,想要删除元素却只能删除索引;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(100);
list.add(99);
list.add(98);
list.remove(99);
System.out.println(list);
}
}
在执行上面代码时会溢出报错:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 99, Size: 3
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.remove(ArrayList.java:496)
at Main.main(Main.java:9)
Process finished with exit code 1
只需要将list.remove(99)改为list.remove((Integer)99),使用Integer封装可以删除指定元素了
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(100);
list.add(99);
list.add(98);
System.out.println("删除前:" + list);
list.remove((Integer)99);
System.out.println("删除后:" + list);
}
}
删除前:[100, 99, 98]
删除后:[100, 98]
Process finished with exit code 0