什么工作得更快:二维数组或列表列表

Bhu*_*nis 1 java performance jvm nested-lists multidimensional-array

我手头有表现情况.

我有大量的数据要以二维表格式(12000 X 2000)保存在内存中.现在据我所知,我可以使用int[][]List<List<Integer>>.当然,我使用int[i][j]或访问值list.get(i).get(j).我循环遍历整个数据至少五次.

您认为哪一个会更快地工作,如果您能回答,为什么?还有什么办法可以加快执行速度吗?

java -version给出: 操作系统是Windows Vista.
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing)

Dav*_*ton 6

阵列几乎肯定会更快.

使用an ArrayList会使性能更加直观,因为它是由实际数组支持的.

编辑以总结评论

  • 列表是重要的.可能是也可能不是问题.
  • 性能差异倾向于最小化.
  • 它应该是基准,以确定.

对于这个用例,我相信阵列的速度会快得多.它是否更快更重要是一个不同的问题,我不太了解正在解决的实际问题,以作出判断.