我有一个对象帐户,其中包含子帐户。
我都有相同的结构,我需要一个父帐户,其中包含1到多个孩子。它们都将被映射到不同对象上的相同对象类(我无法编辑,总是这样!)。那么是否可以在实际对象本身内拥有Object数组。或者我应该制作父母的列表,并在该列表中有一个子列表?
编辑:我无法编辑课程。
我目前正在这样工作:
Account acc = new Account()
Account[] subacc = new Account[length]
现在这是个问题。无需编辑帐户如何关联父母和子女。我假设唯一的方法是创建一个包装器对象来保存它们?有更清洁的方法吗?
答案 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个子节点的列表(或其他集合)。等
我误解了这个问题吗?