ArrayList可以是一个二维数组吗?

4

我刚接触Java,编程和StackOverflow。我需要使用一个列表,可以添加或删除项目,并且不知道初始大小(像ArrayList),但我还需要它是二维的。我在Google和StackOverflow上阅读过,但找不到确切的答案。这可能吗?如果不行,您能指点我正确的方向吗?谢谢。


1
ArrayList中装载ArrayList的列表? - Nishant
2个回答

5
ArrayList<ArrayList> arrList2D = new ArrayList<ArrayList>(2);

arrList2D.add(new ArrayList());
arrList2D.add(new ArrayList());

arrList2D 是一个二维 ArrayList。


太好了,谢谢!我已经把代码搞了几个小时了,所以我想问一下。我很高兴我这样做了!击掌! - Punkrockie
1
请注意,构造函数参数中的“2”与其为二维无关。这只是第一维的初始容量(可以后来增长)。 - Thilo

3

你可以尝试编写简单的代码来检查它是否有效。 顺便提一下,你可以在数组列表中使用另一个数组列表,但我非常确定这将是一个非常糟糕的想法。


一个 ArrayList<ArrayList<?>> 有什么非常糟糕的地方? - Thilo
@Thilo 不能保证成员列表的大小相同,因此您必须始终小心索引。这本身并不是坏事,但会变得棘手。 - jackrabbit
这与二维数组相同,并且它也有优点。 - Thilo
@Thilo,jackrabbit所描述的原因是我想到的原因。其次,ArrayList增长的方式是通过将现有数组复制到下一个内存位置来实现的。我认为,拥有双重维度的ArrayList会在行数增加时导致很大的开销。 - Geek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接