【发布时间】:2021-10-31 13:31:03
【问题描述】:
我无法理解如何将对象添加到列表中。
这是一个将 int[] 添加到 List 的代码示例 -
List<int[]> list = new ArrayList<>();
int[] element = {2,3};
list.add(element);
System.out.println(list); //[[2,3]]
element[1] = 45;
System.out.println(list); //[[2,45]]
我不确定对象是如何添加到列表中的。是否添加了对象的副本? 我试图找出它是否适用于原语,所以这是一个代码示例 -
List<Integer> list = new ArrayList<>();
int obj = 25;
list.add(obj);
System.out.println(list); //[25]
obj=56;
System.out.println(list); //still [25]
Oracle 上的 add function 文档没有提到对象是如何添加的,只是说它是一个布尔函数,除非另有说明,否则在末尾添加元素。 我知道 Java 是通过引用对象来工作的,但是对于这个问题,它到底是什么意思呢?
如果您能帮助我理解这一点,我们将不胜感激,提前谢谢您
【问题讨论】:
-
这与添加到列表无关。
Integers总是不可修改,数组总是可修改。obj=56;没有修改对象。它只是将变量obj重新分配给 56。 -
@Abra 我确实解决了这个问题,但我不知道整数是不可修改的,而数组是。
-
谢谢@Sweeper,你的解释消除了我的一些误解