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);
}
应该:
synchronized (myList) {
   if (!myList.isEmpty()) { 
       myList.get(0);
   }
}
| 归档时间: | 
 | 
| 查看次数: | 16146 次 | 
| 最近记录: |