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

标签 java reference copy pointers

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

相关文章:

迭代 ArrayList 时出现 Java ConcurrentModificationException

java - 在Java中如何用数字元素和空格分割字符串并将其存储到可索引数组中?

c++ - 常量 T & 与 T & 常量。有什么不同?

c# - 在 C# 中复制目录的全部内容

java - 读取文本文件中的五个分数,然后将它们打印回来,并将新分数添加到列表中 - ANDROID

java - 使用排序操作将集合转换为 arrayList

c++ - I/O 操纵器错误或 const ref 的临时生命周期延长?

java - java中如何指向对象?

c - 复制字符串需要注意什么?

language-agnostic - 为什么不可变对象(immutable对象)不需要复制构造函数?