Java 如何正确创建一组多维数组

Java 如何正确创建一组多维数组,java,arrays,list,multidimensional-array,Java,Arrays,List,Multidimensional Array,我一直在阅读接口教程,特别是关于集合(集合,列表,队列,等等),我发现集合的元素中不能包含重复项 我的问题是,我不完全理解如何创建一组未知大小的多维数组 为了填充多维数组,我将在数组中放置1和0,使每个数组看起来如下:(如果它符合我要查找的条件) 或者类似的东西。我认为这可以通过声明多维数组来实现,如: int[][] array = new int[5][]; 然而,我无法理解如何填充多个数组元素,或者如何使用一个集合来完成这一点 如果这不够清楚,请告诉我。列表可以包含重复项,集合不能。可以

我一直在阅读接口教程,特别是关于
集合
集合
列表
队列
,等等),我发现
集合
的元素中不能包含重复项

我的问题是,我不完全理解如何创建一组未知大小的多维数组

为了填充多维数组,我将在数组中放置1和0,使每个数组看起来如下:(如果它符合我要查找的条件)

或者类似的东西。我认为这可以通过声明多维数组来实现,如:

int[][] array = new int[5][];
然而,我无法理解如何填充多个数组元素,或者如何使用一个集合来完成这一点


如果这不够清楚,请告诉我。

列表可以包含重复项,集合不能。可以通过多种方式声明(动态)多维结构,如下所示:

List<List<Integer>> multiDimensional = new ArrayList<List<Integer>>();
List<Integer> row = Arrays.asList({0, 1, 1, 0});
multiDimensional.add(row);
话虽如此,如果多维结构需要100%动态,也就是说,您需要在整个逻辑执行过程中不断增加行和列的能力,那么只需要使用这个嵌套的
列表
设置。实际上,您可以为多维结构使用普通数组,前提是可以提前确定行数,并且每行的长度在该行初始化后不会改变。例如:

int[][] multiDimensional = null;

int rows = ... ;// Determine number of rows
multiDimensional = new int[rows][];

for(final int[] row: multiDimensional) {
    final int cols = ...; // Determine number of cols for this row
    row = new int[cols];
}

您可以使用通常的数组语义访问元素(
多维[0][3]
)。

列表可以包含重复项;它的价值观是独一无二的。谢谢你让我知道,@KyleMahan。我已经在编辑中反映了这一点。不客气,但您可以使用列表而不是集合。列表是一种表示矩阵的方法,其中两个维度的大小事先都不知道。请记住,对于List和int[][],没有任何东西可以阻止第一行有10个数字,第二行有9个数字。我理解,但在我正在解决的问题中,我不能有重复的矩阵。我用这种方法正确地使用了Set吗?我能用这种方法找到
行中的第一个元素吗?我不明白该怎么做。当然,只需使用
列表
类中的
get
方法即可。请参见编辑我的答案。
Integer someVal = multiDimensional.get(0).get(3);
int[][] multiDimensional = null;

int rows = ... ;// Determine number of rows
multiDimensional = new int[rows][];

for(final int[] row: multiDimensional) {
    final int cols = ...; // Determine number of cols for this row
    row = new int[cols];
}