如何选择ArrayList、LinkedLIST、Vector
1、需要线程安全时,用Vector;
2、不存在线程安全问题时,并且查找较多时用ArrayList;
3、不存在线程安全问题时,增加或删除元素较多用LinkedList;
Vector 底层是用数组实现的List,相关的方法都加了同步检查,因此“线程安全,效率低”
例如:
public synchronized int indexOf(Object o, int index) {
if (o == null) {
for (int i = index ; i < elementCount ; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = index ; i < elementCount ; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}