列表中的列表与2D数组有什么区别?

时间:2015-10-24 13:13:23

标签: java arrays arraylist

由于添加项目,我很难确定哪个列表的时间复杂度较低。列表是否比2D数组少? 我想用它代表一个带有大约1000个顶点的无向和未加权的图形。它用于存储顶点。

 List<Integer> list

VS

 int[][] list2 

1 个答案:

答案 0 :(得分:0)

如果您在谈论列表/数组中巨大数量的元素,您只会关心。

集合框架提供的类;像ArrayList那样添加一定的性价格标签;与普通旧阵列相比。所以,当你必须计算1000万个数字的东西时;你最好使用double []而不是ArrayList。

但对于大多数其他用例,集合只是提供了更丰富的界面;这意味着,如果您避免使用数组而是转向某些集合类,则可以更轻松地“优化”代码的可读性和可维护性。在现实世界中,这些属性实际上比使用这些更高级的抽象层的运行时成本更重要。

只是为了确实回答这个问题:我认为ArrayList的“O cost”与数组相同;因为在ArrayList的big-O中会有一些“x n”;和数组将是“y n”; x大于y。

因此,从概念上讲,它们属于同一类;但从实际角度来看,名单更贵。