我最近出现在一次面试中,面试官问我有关Arrays
和ArrayList
的问题。
他问我数组是否可以是多维的,那么ArrayList
的ArrayList
为什么不是多维的呢?
例如:
// Multidimensional
int[][] array = new int[m][n];
// Not multidimensional
ArrayList<ArrayList<Integer>> seq = new ArrayList<ArrayList<Integer>>();
谁能帮我理解这一点?
最佳答案
Cay S. Horstmann在他的《 Core Java》一书中为不耐烦的人指出:
由于ArrayList
s可以扩展,收缩和变成锯齿状而不是多维的事实,因此可以说它不是二维数组,多维含义是固定的行和列,因此,为什么我在注释中也作了说明Java没有真正的多维数组,但这不在您的问题范围内。
如果您对我为什么说Java没有真正的多维数组感到好奇,请阅读the differences between a multidimensional array and an array of arrays in C#?
只是为了使我的答案更清晰,关于Java是否具有真正的多维数组,我没有说Java没有真正的多维数组,我说Java没有真正的多维数组,并且正如所期望的JLS具有说:
关于java - 为什么ArrayLists的ArrayList不是多维的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43860618/