实现可在Arraylists和Integers中存储任何级别的ArrayList的ArrayList的最佳方法是什么。
List<List<Integer>> list = ArrayList<List>();
仅允许列表中的列表最多包含2级,并且不允许混合使用Intergers和ArrayLists。
这是Python中一些简单易用的东西。而且它的数据结构很笨拙,但不幸的是,编码测试需要这些东西。
答案 0 :(得分:1)
实现可以存储任何内容的ArrayList的最佳方法是什么 Arraylist和Integer中的ArrayList级别
您拥有List<Object>
作为Generics are compile-time properties
的唯一选项。因此,您不能根据运行时数据动态更改/确定类型。
因此,我相信最好的唯一选择List<Object>
。但是,you may need to cast many times
使用该列表。
答案 1 :(得分:0)
以比List<Object>
更类型安全的方式执行此操作的唯一方法是定义联合类型:
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.
}
如果您尝试访问缺少的那个,则应该抛出该异常或以其他方式处理。
然后创建以下列表:
List<IntegerOrList> list = new ArrayList<>();