Java基础知识---ArrayDeque

来源:互联网 发布:两心之外无人知 古风歌 编辑:程序博客网 时间:2024/05/16 15:34

Deque
1、双端队列接口;
2、扩展了Queue,有队列的所有方法;
3、有栈的基本方法:push、pop、peek;
4、有明确的操作两端的方法:addFirst、removeLast.

主要方法:

//将指定元素插入双向队列开头void addFirst(Object e);//将指定元素插入双向队列末尾void addLast(Object e);//返回对应的迭代器,以逆向顺序来迭代队列中的元素Iterator descendingIterator();//获取但不删除双向队列的第一个元素Object getFirst();//获取但不删除双向队列的最后一个元素Object getLast();//将指定元素插入双向队列开头boolean offerFirst(Object e);//将指定元素插入双向队列末尾boolean offerLast(Object e);//获取但不删除双向队列的第一个元素,如果双端队列为空则返回nullObject peekFirst();//获取但不删除双向队列的最后一个元素,如果双端队列为空则返回nullObject peekLast();//获取并删除双向队列的第一个元素,如果双端队列为空则返回nullObject pollFirst();//获取并删除双向队列的最后一个元素,如果双端队列为空则返回nullObject pollLast();//退栈出该双向队列的//退栈出该双向队列中的第一个元素Object pop();//将元素入栈进双向队列栈中void push ( Object e );//获取并删除该双向队列的第一个元素Object removeFirst ();//删除双向队列第一次出现的元素 eObject removeFirstOccurrence ( Object e );//获取并删除双向队列的最后一个元素removeLast ();//删除双向队列最后一次出现的元素 eremoveLastOccurrence ( Object e );

LinkedList 是一个比较奇怪的类,其即实现了 List 接口又实现了 Deque 接口(Deque 是 Queue 的子接口),而 LinkedList 的实现是基于双向链表结构的,其容量没有限制,是非并发安全的队列,所以不仅可以当成列表使用,还可以当做双向队列使用,同时也可以当成栈使用(因为还实现了 pop 和 push 方法)。此外 LinkedList 的元素可以为 null 值。

ArrayDeque 是一个用数组实现的双端队列 Deque,为满足可以同时在数组两端插入或删除元素的需求,该数组还必须是循环的,即循环数组(circular array),也就是说数组的任何一点都可能被看作起点或者终点,ArrayDeque 是非线程安全的,当多个线程同时使用的时候需要手动同步,此外该容器不允许放 null 元素,同时与 ArrayList 和 LinkedList 不同的是没有索引位置的概念,不能根据索引位置进行操作。

问:简单说说 ArrayDeque 与 LinkedList 的适用场景?

答:ArrayDeque 和 LinkedList 都实现了 Deque 接口,如果只需要 Deque 接口且从两端进行操作则一般来说 ArrayDeque 效率更高一些,如果同时需要根据索引位置进行操作或经常需要在中间进行插入和删除操作则应该优先选 LinkedList 效率高些,因为 ArrayDeque 实现是循环数组结构(即一个动态扩容数组,默认容量 16,然后通过一个 head 和 tail 索引记录首尾相连),而 LinkedList 是基于双向链表结构的。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 陵水清水湾买房后悔了 买房交了5万定金后悔了 买房下了定金可以退吗 买房签了合同能退房吗 买房给了定金能退吗 买房后悔了 2018在鲅鱼圈投资买房的人亏了 买房要了解什么 为什么现在买房 贷款买房划算吗 中国人买房忌讳13楼吗 婚前贷款买房属于共同财产吗 买房首付可以贷款吗 二手房按揭买房难办吗 北京买房能落户吗 夫妻买房可以一个人贷款吗 低首付买房靠谱吗 贷款买房能拿到房产证吗 7天内买房定金能退吗 2019年汉南买房有必要吗 贷款买房有房产证吗 买房17楼有什么忌讳吗 现在是买房的好时机吗 公积金能异地买房吗 公积金可以跨省买房吗 公积金可以异地买房吗 住房公积金可以异地买房吗 有贷款还能贷款买房吗 银行有贷款还能按揭买房吗 深圳公积金可以异地买房吗 外地公积金可以在本地买房吗 2018年公积金可以跨省买房吗 名下有贷款还可以贷款买房吗 2018网贷没还清可以贷款买房吗 买新房注意什么 买房买几层好 刚买的二手房可以卖吗 买新房网站 新房买了多久可以卖 如何买二手房 买二手房注意