我是靠谱客的博主 平常可乐,最近开发中收集的这篇文章主要介绍Java集合(四四):用Deque代替Vector和Stack,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部