Java List 的 remove 方法有两个重载,一个接收 int 型参数(通过下标删除),一个接收 Object 型参数(通过元素删除)。对于 List<Integer>,如果传入一个整型字面值,会删除对应下标处的元素,如:

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.remove(1);
        System.out.println(list);	// [1, 3]
    }
}

被删除的是 2,而不是 1。

更多推荐

Java List 的 remove 方法