【发布时间】:2017-03-15 13:13:06
【问题描述】:
在Java中是否可以有一个n维数组而不必显式指定维数?
即如果我想要一个二维整数数组,我会这样做:
int[][] myArray = new int[a][b];
对于上述内容,我必须指定 myArray 变量的类型为 int[][]。我要问的是是否有可能声明一个变量,它是一个 n 维数组,而不必事先知道 n。
即如果我有变量test,test 的类型可能是int[][] 或int[][][] 或int[][][][][][][][][][][] - 你明白了。我只想定义 test 而不必定义维数。
我确信上述类型会破坏 Java 中的类型系统,因此我对任何想法持开放态度,因为我认为我以错误的方式处理这个问题。
为了给您一些背景信息,我开发了一种算法来在二维整数数组中查找一个整数,这些整数按行和列按升序排序。我注意到它适用于任何维度数组,因此希望使其更通用。但是,我不想为要作为参数传递的数组的每个可能维度定义一个函数,因为维度可能(不太可能)是从 1D 到 infinityD 的任何地方——因此是个问题。
这也只是出于我自己的好奇心,是否可以对任何维度数组执行此操作。我不知道这是否可能无法使用 Java 的内置设施来完成,我最好构建自己的类系统以在这种情况下支持多维数组。
【问题讨论】:
-
是的,创建一个
ArrayList并继续向其中添加更多内容,您可能想要这个:stackoverflow.com/questions/4770926/java-n-dimensional-arrays
标签: java arrays multidimensional-array