概述
目录
1、官网不推荐
2、Vector和ArrayList区别
3、使用Deque代替stack
1、官网不推荐
Vector和Stack官网已经不推荐使用,一般和list相关的操作都使用ArrayList和LinkedList
2、Vector和ArrayList区别
同:两者都是数组实现,操作基本一样。
异:vector是线程安全的,vector类中大多数方法都使用synchronized关键字修饰,所以性能上vector差很多。Vector的空间扩容是一倍,内存不可复用,而ArrayList是一半 。Vector分配内存是连续的存储空间.
arrayList是线程不安全的,但是可通过Collections.synchronizedList()实现线程安全。
当初 JDK1.0 在开发时,可能为了快速的推出一些基本的数据结构操作,所以推出了一些比较粗糙的类。比如,Vector、Stack、Hashtable等。这些类中的一些方法加上了 synchronized 关键字,容易误导。
所以基本上来说vector 因为线程安全的实现方法比较粗暴效率较低。
3、使用Deque代替stack
Stack 是 JDK 1.0 的产物。它继承自 Vector。
Stack因为继承至vector当然也不推荐使用,可以使用java.util.Deque双端队列来实现队列与栈的各种需求。
stack方法都是加锁的,stack上推荐用Deque<Integer> stack = new ArrayDeque<Integer>()替换stack,看源码便知
最后
以上就是平常可乐为你收集整理的Java集合(四四):用Deque代替Vector和Stack的全部内容,希望文章能够帮你解决Java集合(四四):用Deque代替Vector和Stack所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复