太大的数组或ArrayList?

时间:2014-03-16 13:47:28

标签: arrays arraylist

&#39; ave有时候问自己,是不是一个太大的阵列 int[] test = new int[1000] 或者ArrayList ArrayList<int> test = new ArrayList<int>()在性能方面会更好。我应该使用哪一个?

2 个答案:

答案 0 :(得分:1)

使用自动适应其内容大小的容器几乎总是更好,而不是您假设的固定大小的容器总是足够大。像new int[1000]这样的硬编码大小是一个红色标记,表示该程序具有1000个值的任意限制,并且如果最终需要更多值,则可能会以错误的方式失败。

答案 1 :(得分:1)

从内存的角度来看,

int[]会比ArrayList<Integer>好得多,因为Integer对象需要比int原语更多的内存。但是,元素的访问速度很难评论,因为它取决于JVM。

ArrayList中的add方法执行速度比基于索引的分配慢。最重要的是,如果您在声明之前可以确切地说明数组的大小而不是使用int[],那么请使用ArrayList<Integer>