Java中ArrayList中的ArrayList中的ArrayList

Java中ArrayList中的ArrayList中的ArrayList,java,generics,collections,Java,Generics,Collections,实现可以在ArrayList和整数中存储任意级别ArrayList的ArrayList的最佳方法是什么 List<List<Integer>> list = ArrayList<List>(); List List=ArrayList(); 列表中最多只允许两级列表,不允许混合使用整数和数组列表 这是Python中的一些简单内容。这是一个愚蠢的数据结构,但不幸的是,编码测试需要这些东西 实现可以存储任何数据的ArrayList的最佳方法是什么 ArrayL

实现可以在ArrayList和整数中存储任意级别ArrayList的ArrayList的最佳方法是什么

List<List<Integer>> list = ArrayList<List>();
List List=ArrayList();
列表中最多只允许两级列表,不允许混合使用整数和数组列表


这是Python中的一些简单内容。这是一个愚蠢的数据结构,但不幸的是,编码测试需要这些东西

实现可以存储任何数据的ArrayList的最佳方法是什么 ArrayList和整数中ArrayList的级别

由于
泛型是编译时属性,所以您只有
列表
。因此,您不能根据运行时数据动态更改/决定类型


因此,我认为最好的也是唯一的选择是
列表
。但是,
您可能需要多次强制转换才能使用该列表。

以比
列表
更安全的方式执行此操作的唯一方法是定义联合类型:

class IntegerOrList {
  final Integer i;
  final List<IntegerOrList> list;

  // Constructors to ensure that only one of i and list is present.
  IntegerOrList (Integer i) {
    this.i = i; this.list = null;
  }

  IntegerOrList (List<IntegerOrList> list) {
    this.i = null; this.list = list;
  }

  // Getters.
}
类整数列表{
最后一个整数i;
最后名单;
//构造器确保只有一个i和list存在。
整数列表(整数i){
this.i=i;this.list=null;
}
整数列表(列表){
this.i=null;this.list=list;
}
//吸气剂。
}
如果您试图访问不存在的文件,则应抛出或以其他方式处理该文件

然后创建以下内容的列表:

List<IntegerOrList> list = new ArrayList<>();
List List=new ArrayList();

trued:List List(或类似的东西?整数是一个对象,数组列表也是“这是Python中的一些简单的东西”除此之外,您不知道任何给定元素的类型。在Java中,使用
列表
很容易造成相同程度的混淆。可能
List@Ferrybig不可以,因为这样您就不能在其中放入除文本null以外的任何内容。(这与
List
的内容相同)一吨重的铸件才能通过外观达到结构的任何特定水平。可能需要重新考虑这一点。