我最近出现在一次面试中,面试官问我有关ArraysArrayList的问题。

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

例如:

// 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/

10-10 03:06