使用Java

时间:2015-07-07 15:58:47

标签: java list multidimensional-array

我有一个多维列表

List<List<Integer>> myList;

我希望它的维度在运行时指定,所以在代码中,我把:

myList = Collections.synchronizedList(new ArrayList<List<Integer>>(n));

我希望这会将mylist初始化为一个列表,其中包含n个元素,每个元素都有零元素但是没有发生。我只得到一个空列表。显然是构造函数,“构造一个具有指定初始容量的空列表”。这不是我想要的。

我知道我可以遍历mylistadd()空的一维列表,但有没有办法用更少的代码来实现我想要的东西?

1 个答案:

答案 0 :(得分:1)

首先,构造函数"hello"不会在列表中插入任何元素,因此您没有指定大小,而是指定初始容量。

基本上,您允许列表最多插入n个元素,而无需进行内部调整大小。

所以外部列表仍然是空的。您无法使用std::string("hello")因为每次都需要不同的内部ArrayList<T>(int capacity),而Collections.fill只会将所有元素设置为相同的引用。所以你不得不手动插入它们:

List<Integer>

请注意,在任何情况下,由于您将其指定为fill(这是有意义的),Java将无法默认初始化任何内容,因为for (int i = 0; i < n; ++i) myList.add(new ArrayList<Integer>()); 只是在一个接口中。