Vit*_*nko 29 java arrays list arraylist
正如我所看到的,列表在数组上的优势非常明显:
List<Integer>, List<? extends Number>, List<? super Integer>
.addAll
,remove
等等.虽然对阵列除了获得/设置所有标准操作必须在过程中的方式通过将它传递给一个静态方法进行.ArrayList
,LinkedList
不可修改和同步列表,可以隐藏在公共List接口下.作为缺点,我只能提到没有语法糖和运行时类型检查.同时支持两种结构需要频繁使用asList
和toArray
方法,这使得代码不易读取.所以我很好奇使用我想念的数组有什么重要的好处.
mar*_*usk 20
在处理时间和内存占用方面,阵列都更有效.这尤其适用如果要在原始类型,例如操作int
或long
,由于List
需要将包装在所有元素Object
(如Integer
或Long
).虽然Java 5引入的自动装箱功能减少了此类打包和解包所需的代码量,但它并未消除性能问题,因为仍在创建包装器对象.
但是,大多数应用程序可能没有与这些问题相关的任何性能瓶颈,因此在大多数情况下,List
其他集合应该可以正常运行.在这些情况下,编程的简易性超过了内存或CPU使用量的增加,并且List
是正确的选择.
unh*_*ler 12
如果您的列表不经常更改,列表会为您永远不会使用的对象添加许多额外的权重.当您尝试运行需要优化的内容时,这很有帮助.这个额外的重量也会比只使用数组更慢.但是,除非您知道需要获得数组给出的增益,否则您应该只使用列表.
速度.集合比简单数组慢一些:内部大多数仍使用数组,但围绕这些数组有额外的代码层.当然,除非您特别需要额外的性能,否则仍应使用集合.
数组的另一个小优点是使用数组调用可变方法可能更容易.这应该永远不是选择一个在另一个上面的主要原因.
归档时间: |
|
查看次数: |
11488 次 |
最近记录: |