【Java】关于Java中的Deque


一、二者的关系

1、Quene以及Deque都是继承于Collection,Deque是Quene的子接口。
在这里插入图片描述

public interface Deque<E> extends Queue<E> 

 
 

    Quene是先进先出的单向队列,Deque是双向队列。

    2、下表列出了Deque与Queue相对应的接口:
    在这里插入图片描述
    3、下表列出了Deque与Stack对应的接口:

    在这里插入图片描述

    二、Quene接口

    1、Quene是集合框架Collection的子接口,是一种常见的数据结构,Quene有一个直接子类PriorityQuene,队列Quene是一种常用的数据结构,可以将队列看作是一种特殊的线性表,该结构遵循的先进先出原则。Java中,LinkedList实现了Quene接口,因为LinkedList进行插入、删除操作效率较高。

    poll():将队首的元素删除,并返回该元素。
    peek():返回队首的元素,但不进行删除操作。
    offer():将元素添加到队尾,如果成功,则返回true
     
     

    2、Quene的具体代码操作

    package com.edu.leetcode;
    
    import java.util.*;
    public class QueneDemo {
        public static void testQuene(){
            Queue<String> qu = new LinkedList<>();
            qu.add("苹果");
            qu.add("华为");
    
            System.out.println("原始队列:");
            System.out.println(qu);
    
            System.out.println("通过add往队尾添加元素:");
            qu.add("OPPO");
            System.out.println(qu);
            System.out.println("通过offer往队列尾添加元素:");
            qu.offer("vivo");
            System.out.println(qu);
    
            System.out.println("使用remove删除队列头元素:");
            qu.remove();
            System.out.println(qu);
            System.out.println("使用poll删除对列头元素:");
            qu.poll();
            System.out.println(qu);
        }
        public static void main(String[] args){
            QueneDemo.testQuene();
        }
    }
    
    

    执行结果如下:

    // An highlighted block
    原始队列:
    [苹果, 华为]
    通过add往队尾添加元素:
    [苹果, 华为, OPPO]
    通过offer往队列尾添加元素:
    [苹果, 华为, OPPO, vivo]
    使用remove删除队列头元素:
    [华为, OPPO, vivo]
    使用poll删除对列头元素:
    [OPPO, vivo]
    
     
     

    三、Deque接口(双向队列)

    1、双端队列(Deque),是Quene是一个子接口,双向队列是指该队列两端的元素既能入队(offer)也能出队(poll),如果将Deque限制为只能从一端入队(push)和出队(pop),则可限制栈的数据结构。对于栈而言,有入栈,遵循先进后出原则。

    它既可以当作栈使用,也可以当作队列使用

    add()\offer(e):将元素增加到队列的末尾,如果成功,返回trueremove()\poll():将元素从队列的队首删除。
    element()\peek():返回队首的元素,但不进行删除
    
     
     
    栈:
    push(e):入栈,添加到队首
    pop(e):出栈,删除队首元素
    peek():返回栈首元素,但不进行删除
    
     
     

    参考链接:
    [1] 参考链接.

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值