-
因为Vector是线程安全的,每个可能出现线程安全的方法上加了synchronized关键字,所以效率低。
-
Vector只能在尾部进行插入和删除操作,效率更低。
-
Vector空间满了之后,扩容是一倍,ArrayList仅仅是一半。
-
Vector分配内存的时候需要连续的存储空间,如果数据太多,容易分配内存失败。
ArrayList是线程不安全的,但是可通过Collections.synchronizedList()实现线程安全。
也可以使用java.util.Deque双端队列来实现队列与栈的各种需求。