哪个更有效,占用更少内存,更快地循环以及为什么?
案例1:
ArrayList<int [9]>
案例2:
int [9][9]
谢谢
答案 0 :(得分:2)
[假设你的意思是ArrayList<>
而不是Array<>
,因为后者是不可能的。]
通过所有技术措施,原生数组总是会比ArrayList<>
更快更小,尽管差异在很多情况下可能非常小。在内部,ArrayList
使用本机数组来存储其元素,因此它不可能胜过该数组。
但是,ArrayList<E>
的优势在于它实现了所有List<E>
界面以及Collection<E>
和Iterable<E>
。通过允许您直接将对象传递给任何接受implement
这些接口的参数的函数,这可以使您的代码变得更加简单。
ArrayList<E>
的另一个优点是数组可以透明地增大,因此如果您事先不知道数组的大小,则可能更受欢迎。然而,这本身就带来了性能成本 - 如果新大小大于后备存储阵列的当前容量,则必须创建一个全新的数组,然后将原始元素全部复制到其中 - O(n)
操作
答案 1 :(得分:0)
我认为你的意思是ArrayList
?
如果这就是你的意思:那么一个数组(int[][]
)总是比列表ArrayList<Integer[]>
快
因为ArrayList
使用数组,并且每次删除一个值,它都会重写整个数组。
结论: 除非您要一直删除/添加值而不是“数组”的末尾,否则请使用常规数组(int[][]
) ,但如果愿意,请使用ArrayList<int[]>
答案 2 :(得分:-2)
int[]
和int[][]
的数组是相同的,由不同的名称调用。考虑到只有一个声明在java中有效(int[][]
),问题是什么?