Java 为什么不用Vector
Stack就是继承Vector的,而我们常常用Deque替代Stack(Deque可以当栈也可以当队列)
不使用Vector及子类原因如下:
1. 因为vector是线程安全的,所以效率低,这容易理解,类似StringBuffer
2. Vector空间满了之后,扩容是一倍,而ArrayList仅仅是一半
3. Vector分配内存的时候需要连续的存储空间,如果数据太多,容易分配内存失败
4. 只能在尾部进行插入和删除操作,效率低
Stack就是继承Vector的,而我们常常用Deque替代Stack(Deque可以当栈也可以当队列)
不使用Vector及子类原因如下:
1. 因为vector是线程安全的,所以效率低,这容易理解,类似StringBuffer
2. Vector空间满了之后,扩容是一倍,而ArrayList仅仅是一半
3. Vector分配内存的时候需要连续的存储空间,如果数据太多,容易分配内存失败
4. 只能在尾部进行插入和删除操作,效率低