我有一个名为classA
的班级,其成员remainingValues
的类型为ArrayList<Pair<Integer, classA>>
。
classA的类结构:
classA {
...
ArrayList<Pair<Integer,classA>> remainingValues;
}
为上述objA1
创建了对象classA
,并使用remainingValues初始化了值,
<5, classA>
|
-> <4, null>
还有另一个类classB
将classA
的对象初始化为objB1
,然后将remainingValues
的所有值复制到其中。但是,它不能作为这个新初始化对象的参考。
现在,我更新remainingValues
中的objB1
,其余值中的值为,
<5, classA>
|
-> <4, classA>
|
-> <2, classA>
|
-> <3, null>
因此,当我在objB1
中更新时,我应该可以在remainingValues
中的objA1
进行更新。
我想到了在objB1中更新之后更新objA1的方法。
如何有效地完成?我正面临这个问题,因为我想转换用C ++编写的程序,它使用指针来处理所有这些东西。在Java中,我不能将它用作指针,但因为它只使用引用,所以我无法处理字段的更新。
我有一个部分代码试图将obj1A的字段更新为
public void updateRemainNodes(classA node) {
if (!obj1A.remainingValues.isEmpty()) {
for (int i=0; i<obj1A.remainingValues.size(); i++ ) {
if (node.getName() == obj1A.remainingValues.get(i).getLeft()) {
obj1A.remainingValues.get(i).setPair(node.getName(), node);
}
}
}
}
使用此代码,我只能在第一级的值为null时进行更新,但如果它在另一级别上,则无法更新。
谢谢。