' ave有时候问自己,是不是一个太大的阵列
int[] test = new int[1000]
或者ArrayList ArrayList<int> test = new ArrayList<int>()
在性能方面会更好。我应该使用哪一个?
答案 0 :(得分:1)
使用自动适应其内容大小的容器几乎总是更好,而不是您假设的固定大小的容器总是足够大。像new int[1000]
这样的硬编码大小是一个红色标记,表示该程序具有1000个值的任意限制,并且如果最终需要更多值,则可能会以错误的方式失败。
答案 1 :(得分:1)
int[]
会比ArrayList<Integer>
好得多,因为Integer
对象需要比int
原语更多的内存。但是,元素的访问速度很难评论,因为它取决于JVM。
ArrayList
中的add方法执行速度比基于索引的分配慢。最重要的是,如果您在声明之前可以确切地说明数组的大小而不是使用int[]
,那么请使用ArrayList<Integer>
。