deque的使用

对于队列

public static List<List<String>> lists = new ArrayList<List<String>>();
public static Deque<String> deque = new LinkedList<String>();
    

使用队列的时候,new LinkedList的时候为什么用deque接收,不用LinkedList呢?

答:deque继承queue接口,因为它有两个实现,LinkedList与ArrayDeque。用deque接收是因为向上转型(子类往父类转,会丢失子类的特殊功能)了。

ArrayDeque一般优于链表队列/双端队列,有限数量的垃圾产生(旧数组将被丢弃在扩展),建议使用deque,ArrayDeque优先。

//从队首取出元素,不会删除
System.out.println("队首取出元素:"+deque.peek());
 //从队首加入元素(队列有容量限制时用,无则用addFirst)
deque.offerFirst("c");
deque.addLast(str);
 //从队尾加入元素(队列有容量限制时用,无则用addLast)
deque.offerLast("g");
 //获取并移除队列第一个元素,pollFirst()也是,
 deque.removeFirst();
 //获取并移除队列第一个元素,此方法与pollLast 唯一区别在于队列为空时,removeLast会抛出NoSuchElementException异常,后者返回null
   deque.removeLast();
 //获取队列第一个元素.此方法与 peekFirst 唯一的不同在于:如果此双端队列为空,它将抛出NoSuchElementException,后者返回null
  System.out.println("获取队列第一个元素为:"+deque.getFirst());
  //循环获取元素并在队列移除元素
        while(deque.size()>0){
            System.out.println("获取元素为:"+ deque.pop()+" 并删除");
        }

LinkedList 使用链表实现,可以有removeLast方法,ArrayList没有这个方法。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值