反映类的另一个对象的成员字段在Java

时间:2016-07-12 03:22:52

标签: java pointers data-structures nodes

我有一个名为classA的班级,其成员remainingValues的类型为ArrayList<Pair<Integer, classA>>

classA的类结构:

classA {
    ...
    ArrayList<Pair<Integer,classA>> remainingValues;
}

为上述objA1创建了对象classA,并使用remainingValues初始化了值,

<5, classA>
     |
     -> <4, null>

还有另一个类classBclassA的对象初始化为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时进行更新,但如果它在另一级别上,则无法更新。

谢谢。

0 个答案:

没有答案