所以我在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/