我一直在浏览Java Tutorials在接口(interface)教程中,特别是关于集合(Set
、List
、Queue
等),我遇到了Set
的元素中不能包含重复项。
我的问题是我不完全理解如何创建一组未知大小的多维数组。
为了填充多维数组,我将在数组中放置 1 和 0,以便每个数字如下所示:(如果它符合我正在寻找的条件)
[ 0 1 1 0
0 1 1 0
0 1 0 0
0 1 0 0
0 0 0 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);
诸如此类。要访问列表的元素,请使用 get
方法,其方式与使用数组类似:
Integer someVal = multiDimensional.get(0).get(3);
话虽如此,如果您的多维结构需要 100% 动态,您只需要使用此嵌套 List
设置,也就是说您需要能够在整个执行过程中不断增长行和列你的逻辑。实际上,您可以将普通数组用于多维结构,假设行数可以提前确定,并且每行的长度在该行初始化后不会改变。例证:
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];
}
然后您可以使用常用的数组语义 (multiDimensional[0][3]
) 访问元素。
关于java - 如何正确创建多维数组的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9337373/