元のコードでは、ノードをツリーに追加しています。私の目標は、ツリーに追加した最後のノードに何らかの方法でアクセスできるようにすることです(私のアイデアは、最後のオブジェクト(元の例ではノード)を指す別のオブジェクトを作成することでした)。
public class RandomSubClass
{
int firstNum;
}
import java.util.LinkedList;
public class RandomClass
{
LinkedList<RandomSubClass> myListOfObjects = new LinkedList<RandomSubClass>();
void addItem(int firstNum, RandomSubClass toBeReturned)
{
RandomSubClass o1 = new RandomSubClass();
o1.firstNum = firstNum;
myListOfObjects.add(o1);
// Here I was thinking that 'toBeReturned' will get same address as
// 'o1', and by changing 'toBeReturned' (in main), values in 'o1' change
//
toBeReturned = o1;
// This following commented code worked,
// but I can't use it in my original code.
//
// The reason I can't use it is because when I add a node to a tree,
// I start at the root and trace the new node's way to a new leaf,
// which makes it hard to do (simply) that.
//
//toBeReturned.firstNum = firstNum;
//myListOfObjects.add(toBeReturned);
}
}
public class Main
{
public static void main(String[] args)
{
RandomClass myList = new RandomClass();
RandomSubClass r1 = new RandomSubClass();
RandomSubClass r2 = new RandomSubClass();
myList.addItem(1, r1);
myList.addItem(2, r2);
// I would like to do that, and see changes in the node in 'myList'
//
r1.firstNum = 10;
r2.firstNum = 20;
}
}
ツリーにノードを追加した後、ノードについて何かをチェックしたいのですが、それが何らかの条件を満たす場合は、そのノードのフラグを変更したいと思います。
(ルートから開始して)ノードを再度トレースすることはできますが、ある時点でツリーが巨大になる可能性があり、時間がかかります。したがって、追加するときにそのノードのアドレスを取得し、状態を確認した後、そのノード(最後に追加された)のフラグが変更されることを知って、そのアドレスのフラグを変更できます。