Java转换为列表后插入到数组中

Bur*_*man 0 java java-collections-api

        String[] arr = { "Java", "Champ", "." };
        List<String> list = (List<String>) Arrays.asList(arr);  // line 1
        arr[2] = ".com"; // line 2
        for (String word : list) {
            System.out.print(word);
        }
Run Code Online (Sandbox Code Playgroud)

JavaChamp.com即使它在第1行中转换为List并在第2行中修改,结果如何输出

Jon*_*eet 7

Arrays.asList不会将数组复制到列表中 - 它会在数组中创建一个视图.您通过列表进行的任何更改都会影响数组,反之亦然.这就是为什么你不能添加(或删除)由Arrays.asList- 返回的列表- 因为数组本身不能改变大小.

该文档在一个方向上明确了这一点:

返回由指定数组支持的固定大小的列表.(对返回列表的更改"直写"到数组.)

...但它有两种方式,因为列表没有专用的后备存储.它确实只是由阵列支持.