在Java中,数组比Arraylists有什么优势?

时间:2016-03-10 18:50:31

标签: java arrays arraylist

我正在学习Java的书中说过Arraylists:

" ArrayList在程序中根据需要缩小和增长,而数组则具有 创建数组时设置的固定长度。

在ArrayList列表中,最后一个插槽始终是list.size() - 1,而在部分中 填充数组,你,程序员,必须跟踪当前的最后一个插槽 在使用中。

对于ArrayList,只需一个语句即可进行插入或删除。 任何元素移位都会自动处理。但是,在数组中插入 或删除要求您编写转移元素的代码。"

同时,阵列没有这些东西。我目前无法想到使用数组而不是Arraylists的任何理由。方法数组运行速度比Arraylist方法快吗?他们以某种方式比Arraylists使用更少的内存吗?

2 个答案:

答案 0 :(得分:1)

  • 阵列具有更好的内置语法;您可以使用[]代替.get.set
  • 阵列在没有拳击开销的情况下可以正常使用基元;例如您可以拥有int[]但不能拥有ArrayList<int>
  • 阵列稍快,是的。但不是很多,因为ArrayList只是内部数组上的一个非常薄的层。

一般来说,我很少使用基元以外的数组。

答案 1 :(得分:0)

方法数组运行速度比Arraylist方法快吗?他们以某种方式比Arraylists使用更少的内存吗?

就是这样 我只需要迭代一个不可变数据就可以用数组来做,但是如果你想插入,删除,弹出等等......用List做它