gpt4 book ai didi

java - java中的Arrays.asList()返回源数组的引用列表?

转载 作者:行者123 更新时间:2023-12-01 22:41:48 25 4
gpt4 key购买 nike

执行下面的代码后,我觉得 Arrays.asList 在打印显示源数组的最终内容后返回了对源数组的引用。

String[] circus2 = { "Monkey", "Elephant" };
List<String> zoo2 = Arrays.asList(circus2);
circus2[1] = "bear";
System.out.println("zoo2 size: " + zoo2.size());
System.out.println("zoo2 : " + zoo2);

====

zoo2 size:2
zoo2 : [Monkey, bear]

如果我错了,请指教我。 Java 文档说它返回“返回一个固定大小的列表指定的数组支持。”。

最佳答案

该文档的实际含义是,一旦将数组转换为列表,您只能修改列表的现有内容(即其后面的数组),而不能添加/删除元素。

public static void main(String[] args) {
String[] str = new String[2];
str[0] = "abc";
str[1] = "def";
List<String> l = Arrays.asList(str);
l.set(0, "ghi");

for (String s : str) {
System.out.println(s);
}
}

操作:

ghi
def

但是如果你尝试l.add("ppp");那么你会得到一个错误。为什么? - 因为 Arrays.aslist() 返回的 List 中的静态内部类 Arrays 类(它不是 java.util.ArrayList),因此,您将得到 UnsupportedOperationException,因为某些按定义应重写的方法实际上并未被重写在静态内部类中。

关于java - java中的Arrays.asList()返回源数组的引用列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com