从 ArrayList<ArrayList<Object>> 到固定大小的数组/列表

Joh*_*ohn 5 java arrays arraylist

我有这个:

private ArrayList<ArrayList<Object>> models;
Run Code Online (Sandbox Code Playgroud)

在构造函数中我有:

models = new ArrayList<ArrayList<Object>>();
Run Code Online (Sandbox Code Playgroud)

后来,我做这样的事情:

models.add(new ArrayList<Object>());
Run Code Online (Sandbox Code Playgroud)

以及其他操作。

我想将外部 ArrayList 设为具有固定大小(数组、列表)的内容,但由于嵌套对象,我真的不知道如何编写声明、初始化、添加等。有人可以通过为我回答这个问题来节省我的时间吗?

Era*_*ran 6

您可以使用Arrays.asList()来创建固定大小的Lists。

例子:

List大小为 3 的A ,用空值初始化:

List<ArrayList<Object>> models = Arrays.asList (null,null,null);
Run Code Online (Sandbox Code Playgroud)

List大小为 3 的A ,用非空值初始化:

List<ArrayList<Object>> models = Arrays.asList (new ArrayList<Object> (),new ArrayList<Object> (),new ArrayList<Object> ());
Run Code Online (Sandbox Code Playgroud)

List大小为 10 的A ,用空值初始化:

List<ArrayList<Object>> models = Arrays.asList ((ArrayList<Object>[])new ArrayList[10]);
Run Code Online (Sandbox Code Playgroud)

请注意,add固定大小的列表不支持操作。你将不得不models.set(index,new ArrayList<Object>())改用。

编辑:

这是初始化Listusing的另一种方法Stream

List<ArrayList<Object>> models = Arrays.asList (Stream.generate (ArrayList::new).limit (10).toArray (ArrayList[]::new));
Run Code Online (Sandbox Code Playgroud)