java - 为什么 ArrayList 的 ArrayList 不是多维的?

标签 java arrays list arraylist multidimensional-array

我最近参加了一次面试,面试官问我一个关于 ArraysArrayList 的问题。

他问我数组数组是否可以是多维的,那为什么ArrayListArrayList不是多维的?

例如:

// Multidimensional
int[][] array = new int[m][n]; 

// Not multidimensional
ArrayList<ArrayList<Integer>> seq = new ArrayList<ArrayList<Integer>>(); 

谁能帮我理解这个?

最佳答案

Cay S. Horstmann 在他的Core Java for the impatient一书中说过:

There are no two-dimensional array lists in Java, but you can declare a variable of type ArrayList<ArrayList<Integer>> and build up the rows yourself.

由于 ArrayList s 可以伸缩,变成锯齿状,而不是多维的,可以说它不是二维数组,多维的意思是固定行和列,因此为什么我还在评论中声明 Java 没有 true 多维数组,但这超出了您的问题范围。

如果你好奇我为什么说 Java 没有 true 多维数组,请阅读 the differences between a multidimensional array and an array of arrays in C#?


为了让我的回答更清楚,关于 Java 是否有 true 多维数组,我确实 not 说 java 没有多维数组,我说 Java 没有 true 多维数组,正如所料 JLS已声明:

A multidimensional array need not have arrays of the same length at each level.

关于java - 为什么 ArrayList 的 ArrayList 不是多维的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43860618/

相关文章:

Java如何制作一个方法,该方法不能同时接受两种列表类型

list - 如何编写检查项目是否在树中的函数?

java - 自定义 ListView Android 的 getView nullPointerException

java - 程序输出中的间距错误

javascript - 将项目添加到 json 对象数组中

C++:平均数和众数

java - Activity 如何启动一个新 Activity 并自行关闭?

java - Java-Scanner .nextLine()读取未分配的字符串

arrays - Flutter - 过滤数组中具有相同名称的元素

python - 如何计算列表python,django中元素的重复