对象是否可以保存其自身对象的数组

时间:2011-06-30 09:48:16

标签: java arrays list object

我有一个对象帐户,其中包含子帐户。

我都有相同的结构,我需要一个父帐户,其中包含1到多个孩子。它们都将被映射到不同对象上的相同对象类(我无法编辑,总是这样!)。那么是否可以在实际对象本身内拥有Object数组。或者我应该制作父母的列表,并在该列表中有一个子列表?

编辑:我无法编辑课程。

我目前正在这样工作:

Account acc = new Account()
Account[] subacc = new Account[length]

现在这是个问题。无需编辑帐户如何关联父母和子女。我假设唯一的方法是创建一个包装器对象来保存它们?有更清洁的方法吗?

7 个答案:

答案 0 :(得分:6)

你的意思是这样的吗?

class Account
{
    private Account[] children;
}

绝对。 (对于List<Account>或者只有一个Account字段等也是如此。)

答案 1 :(得分:2)

是。实际上,数组可以保存对象本身的引用。

当您管理对象时,您正在处理引用(也称为指针),您可以使用它们执行常规操作。只有当你执行myObject.myMethod()时,它们才会被引用以获取实际对象。

public class MyTest {
  public myTest[] myArray = new MyTest[10];
  public MyTest() {
    this.myArray[0] = this;
  }
}

答案 2 :(得分:1)

你可以根据自己的需要选择任何一个,如果你需要可扩展List,可以array,你也会得到方法的支持

以下编译正常:

class Foo {

    private Foo[] arr = new Foo[10];
    private List<Foo> list = new ArrayList<Foo>();
}

答案 3 :(得分:1)

如果我理解正确

public class Account {

    private String id;
    private List<Account> linkedAccounts;

    //Getter and setter

}

如果你想要我上面提到的东西,那么是的。除非你明确说明你需要达到的目标,否则我就能展现出来。

linkedAccounts属性包含Account列表(通常链接到父帐户对象)。

答案 4 :(得分:1)

没有理由不能在相同类型的对象之间建立父/子关系。例如,您可以向上走到结果树,直到

  

account.getParent()== null

答案 5 :(得分:1)

我不知道我是否得到了你,但你可以做如下的事情:

  public class Person
    {
        public string Name { get; set; }
        public List<Person> Chldren { get; set; }
    }


    public class MyClass
    {

        public static void Main()
        {
            Person myDad=new Person();
            myDad.Chldren=new List<Person>()
                              {
                                  {new Person()},
                                  {new Person()}
                              };

        }
    }

答案 6 :(得分:0)

这不是n-ary tree中的节点包含的内容吗?每个节点最多可包含n个子节点。二叉树中的每个节点可以有2个子节点。三元树中的每个节点都可以包含最多3个子节点的列表(或其他集合)。等

我误解了这个问题吗?