У меня следующие два сценария:
1. int как параметр
int intNum = 2;
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.remove(intNum);
System.out.println(list.size());
// output: 2
2. длинное значение как параметр
long longNum = 2;
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.remove(longNum);
System.out.println(list.size());
// output: 3
Я передаю 2 как значение в обоих случаях, но я получаю другое значение в List. Какова фактическая причина такого поведения?
Правильное удаление целого из списка не объясняет, что тип данных встроенного типа имеет такое же значение, но имеет поведение по-другому, как указано выше