Queue集合 16.07.29 java基础

       因为刚刚开通博客,所以就先从现在开始学习的地方开始把学到的知识记录下来,至于之前学的内容的话,那就在之后复习的时候再补充上吧。
       7.29日我们学习了queue集合的知识以及它的priorityQueue实现类还有它的子接口Deque接口以及子接口的实现类ArrayDeque。

Queue集合

       该接口主要用于模拟队列的数据存储结构,队列遵循“先进先出”,“后进后出”的存储规范,即(FIFO),也就是说是先进入队列的放在队首,后进入队列的放在队尾。

方法区:
 Void add(Object obj):将指定元素加入此队列的尾部。
 Object element():获取队列头部的元素,但不删除该元素。
 Boolean offer(Object obj):将指定元素加入此队列的尾部,当使用有容量限制的队列时,此方法比add()方法更好。
 Object peek():获取队列头部的元素,但不删除该元素。如果此队列为空,返回null。
 Object poll():获取队列头部的元素,并删除该元素,如果此队列为空,返回Null。
 Object remove():获取队列头部的元素,并删除该元素。

priorityQueue实现类

       值得注意的是虽然priorityQueue实现类是Queue接口的一个实现类,但是它并不是一个绝对标准的队列实现,因为priorityQueue实现类保存元素的顺序并不是按照先进先出这样的标准来的,而是在接收到元素之后按照元素的大小顺序依次排序,如果使用peek()或者poll()方法获取元素位置的时候,并不一定是首先存入的元素对象,而是队列中最小的元素。
       注意:PriorityQueue不允许插入null值,它需要对队列元素进行排序,PriorityQueue的元素排序分两种情况,自然排序和定制排序,参照TreeSet。
       方法同父类方法一样。

Queue子接口Deque

       代表着一个双端队列,定义了一些双端队列的方法,允许从两端来操作队列元素。

方法区
void addFirst(Object obj):将指定元素插入到该队列的首部。
void addlast(Object obj):将指定元素插入到该队列的尾部。
Iterator desceningIterator():返回该双端队列对应的迭代器,该迭代器将以逆向顺序来迭代队列中的元素。
Object getFirst():获取双端队列的第一个元素。
Object getLast():获取双端队列的最后一个元素。
Boolean offerFirst(Object obj):将指定元素插入到双端队列的开头。
Boolean offerLast(Object obj):将指定元素插入到双端队列的末尾。
Object peekFrist():获取但不删除双端队列的第一个元素。
Object peekLast():获取但不删除双端队列的最后一个元素。
Object pollFrist():获取并删除双端队列的第一个元素。
Object pollLast():获取并删除双端队列的最后一个元素。
Object pop():获取并删除该双端队列的第一个元素。
void push(Object obj):将一个元素插入到该双端队列的队首位置,相当于addFrist()
Object removeFirst():获取并删除该双端队列的第一个元素。
Object removeLast():获取并删除该双端队列的最后一个元素。

       该类实现Deque以及Queue接口,因此它们的方法必须全被重写了,因此方法区应与以上一样。

LinkedList实现类

       LinkedList类是List接口的实现类,因此可根据索引来随机访问集合中元素。LinkedList还实现了Deque接口,因此可被当做双端队列来使用,同样也可以被当做“栈”来使用。
       LinkedList与ArrayList、ArrayDeque的实现机制不同,ArrayList和ArrayDeque内部以数组的形式来保存集合中元素,因此随机访问集合元素时有较好的性能。而LinkedList内部以链表的形式来保存集合中的元素,因此随机访问集合元素时性能不如ArrayList和ArrayDeque。而插入、删除元素时性能非常出色,只需要改变指针所指向的地址即可。
       关于Queue集合的内容现在先记录到这里,如果发现问题,之后可能会有补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值