Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,将自定义列表对象添加到与字段相同的类中的可能现实原因?_Java_List_Oop_Arraylist_Field - Fatal编程技术网

在java中,将自定义列表对象添加到与字段相同的类中的可能现实原因?

在java中,将自定义列表对象添加到与字段相同的类中的可能现实原因?,java,list,oop,arraylist,field,Java,List,Oop,Arraylist,Field,我希望这个问题不是太含糊或太宽泛而无法回答。 我可以在任何需要的地方创建列表;如果我需要它作为一个静态字段,我可以在其他类中也这样做。 为什么要在同一个类中添加自定义列表作为字段? 在OOP中,这种方法的优点和缺点是什么? 你能解释一下这些方法的不同结果吗 编辑:我通常按照建议使用自定义列表来存储一个类的多个实例。我检查了其他人的代码,我看到了这些方法,其中类与其他类没有父子关系,但它被定义为同一类中的列表对象,作为用于存储类本身的多个实例的字段。它让我想起了无限镜像效应。所以,我想知道我错过了

我希望这个问题不是太含糊或太宽泛而无法回答。 我可以在任何需要的地方创建列表;如果我需要它作为一个静态字段,我可以在其他类中也这样做。 为什么要在同一个类中添加自定义列表作为字段? 在OOP中,这种方法的优点和缺点是什么? 你能解释一下这些方法的不同结果吗

编辑:我通常按照建议使用自定义列表来存储一个类的多个实例。我检查了其他人的代码,我看到了这些方法,其中类与其他类没有父子关系,但它被定义为同一类中的列表对象,作为用于存储类本身的多个实例的字段。它让我想起了无限镜像效应。所以,我想知道我错过了什么

class Record {
        String name;
        String surname;
        String phoneNumber;
        ArrayList<Record> phoneBook; 
    }

class Main {
    String x;
    String y;
    ArrayList<Record> phoneBook; 

}
课堂记录{
字符串名;
串姓;
字符串电话号码;
ArrayList电话簿;
}
班长{
字符串x;
弦y;
ArrayList电话簿;
}

根据您所说的,假设您有10个Record类实例,并且假设在每个类中存储了所有这10个实例的列表,那么您实际上会有100个实例,并且根据您所做的操作,应用程序的性能可能会受到影响

另一方面,假设您拥有Record类的10个实例,但您只将实例本身存储在列表中,这没有意义,它将毫无用处


最后,合乎逻辑的是,当创建一个列表时,它将存储类的多个实例,然后您可以访问每个实例的数据,因此在这种情况下,在类中使用列表本身是没有用的。

一个名为
Record
的类包含一个
phoneBook
听起来不正确,因此,设计是关闭的。这种递归结构在某些情况下是可能的和有用的,但在这里不是。这种方法本身是可行的,可以用来表示任何树状/层次结构的数据结构(
Node
引用了
Node
的列表,系谱树-
Person
有父母、兄弟姐妹和子女的列表,
Employee
有老板和下属的列表等)