gpt4 book ai didi

java - List<> 更改时是否会更改对 LIst<> 的所有其他引用?

转载 作者:行者123 更新时间:2023-12-02 05:22:49 26 4
gpt4 key购买 nike

众所周知,在 Java 中,如果更改对象,则引用该对象的“每个人”也会发生更改,如下例所示。

List<String> mainList = new ArrayList<String>(); 
mainList.add("a");
mainList.add("c");
mainList.add("b");
mainList.add("d");

System.out.println(Arrays.toString(mainList.toArray(new String[mainList.size()]))); // randomly ordered strings [a, c, b, d]

List<String> referencedList = mainList;// referencedList contains the same unordered strings [a, c, b, d]

Collections.sort(mainList);// mainList is sorted [a, b, c, d]
System.out.println(Arrays.toString(referencedList.toArray(new String[ referencedList.size()]))); // the referenced list is also sorted

是否有任何方法可以获取一个 List<>,其中只有其中的对象在所有数组中更新,但引用的数组保持未排序?

最佳答案

听起来你只想要一个浅克隆,例如

List<String> referencedStrings = new ArrayList<>(referencedStrings);

这将获取现有列表的副本 - 但由于该列表仅包含引用,因此对这些引用引用的对象的任何更改都将通过两个列表可见。 (无论如何,您都不能更改 String 对象的内容,请注意...)

关于java - List<> 更改时是否会更改对 LIst<> 的所有其他引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26361985/

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