java - 如何正确创建多维数组的集合

标签 java arrays list multidimensional-array

我一直在浏览Java Tutorials在接口(interface)教程中,特别是关于集合(SetListQueue 等),我遇到了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/

相关文章:

java - 通用列表和 for-each 循环

C#、EF : Select from table using list of tuples

python - 对百分比列表进行排序

c - 根据条件匹配数组元素

php - 在函数中添加新的数组键

Javascript将数组设置为另一个数组元素的属性

python - 如何对字符串列表中的每个单独的字符串进行排序?

java - 启动 Neo4j 失败 : Component was successfully initialized, 但未能启动

java - 如何增加 tabItems 上图标的大小?

java - 如何检测本地网络上运行指定端口地址的Java程序的主机?