gpt4 book ai didi

java - java中将数据复制到引用中(缺少指针问题)

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:15 25 4
gpt4 key购买 nike

所以我在java中有一个ArrayList。我正在做的是创建一个包含更新值的新列表。但我想将这些新值放入原始的 ArrayList 中。这很重要,因为我将原始 arraylist 引用传递给我不再有权访问的对象,但我需要保持其内容最新。有没有办法让java将内容复制到当前引用中?我希望这是有道理的。

另外,我不想清除原始数组列表,然后循环遍历它,将新内容插入其中。

我需要做这样的事情:

ArrayList a;
ArrayList *b = a;
//pass b (the pointer) to something
ArrayList c;
*b = c;

我真的希望我的(伪)c++代码正确,否则我会看起来很愚蠢=P

我可以看出我并不清楚,这有点复杂(这是在 Android 中,所以它跨越几个 Activity )所以让我看看我是否可以更好地表达我的观点。


Class1{
ArrayList a;
method1(){

a = Class2.getA();
method_that_uses_a(a);
}
}

Class2{
ArrayList getA(){

ArrayList a = new ArrayList

a = getDataFromWebsite();

return a;
}


Class1 的 method1() 被另一部分代码定期调用。但我需要对 a 的引用保持不变,但内容更改为新内容。

最佳答案

我认为你的问题不清楚,你的意思是什么

“我正在做的是创建一个包含更新值的新列表。但我想将这些新值放入原始 ArrayList 中。这很重要,因为我将原始 arraylist 引用传递给我不再有权访问的对象,但我需要保持其内容最新。有没有办法让 java 将内容复制到当前引用中?我希望这是有道理的。”

当你这样做时

List a = new ArrayList
List b = a

您有一个 ArrayList 对象,以及对该对象的两个引用:a 和 b。

另请注意,您可以使用 addAll 方法将一个集合的成员添加到另一个集合。请注意,我相信 addAll 不会进行深层复制,因此如果您使用它,两个列表都会具有相同引用的副本。因此,如果列表 a 具有引用 a1、a2、a3,并且您执行 b.addAll(a),则 b 现在具有对 a1...a3 指向的对象的引用...

关于java - java中将数据复制到引用中(缺少指针问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284822/

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