Rya*_*mes 28 java collections performance
性能Vector
和ArrayList
?之间真的有那么大差异吗?当线程安全不成问题时,始终使用ArrayLists是一种好习惯吗?
Chr*_* P. 40
Vector源于预收集API时代,并且自从成为其中的一部分后进行了改造.从我所读到的,它不被弃用的原因是因为核心API依赖于它.
ArrayList是作为Collections API的一部分从头开始编写的,因此除非您需要支持低至1.2的Java版本,否则应该使用它.
如果需要线程安全的ArrayList,可以使用静态工厂方法Collections.synchronizedList(new ArrayList<type>);
生成列表.
Aar*_*ron 15
如果线程安全不是问题,ArrayList
则更快,因为它不必同步.虽然,您应该始终将变量声明为,List
以便稍后可以根据需要更改实现.
我更喜欢明确地处理我的同步,因为很多操作需要多次调用.例如:
if (!myList.isEmpty()) {
myList.get(0);
}
Run Code Online (Sandbox Code Playgroud)
应该:
synchronized (myList) {
if (!myList.isEmpty()) {
myList.get(0);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16146 次 |
最近记录: |