Arrays.asList()如何在这种情况下工作?

时间:2014-06-12 12:53:52

标签: java arrays

Long[] myArr = new Long[size];

// Code to store values in myArr

List<Long> myList = new ArrayList<Long>();

// Code to store values in myList

myList.addAll(Arrays.asList(myArr));
myArr = null;

Arrays.asList()的文档说返回的列表由原始数组支持,对列表中元素的更改将通过&#34;写入&#34;到原始数组。我想知道将myArr设置为null,是否会删除通过myArr创建的列表元素? 我猜它不会因为我只是将引用变量设置为null而原始数组仍然存在于由myList引用的内存中。我这么想是对的吗?

2 个答案:

答案 0 :(得分:3)

List.addAll()方法将所有元素添加到其内部数据结构(在本例中为数组)。 myArr没有任何突变会对myList中的值产生任何影响。

答案 1 :(得分:2)

你是对的。

myArr = null更改引用,而不是数组本身。