java的queue和deque

queue和deque

  1. 介绍

    queue是collection的子接口,表示的数据结构为队列(FIFO)
    deque是queue的子接口,是double-ended-queue的缩写,表示的数据结构为双端队列

  2. queue和deque方法的比较

    queue提供了在队尾增加、删除、查看元素的方法
    deque提供了在队列两端增加、删除、查看元素的方法

deque中的方法描述等价的queue中的方法
addFirst(e)在队首增加元素,若队列已满,抛出异常-
addLast(e)在队尾增加元素,若队列已满,抛出异常add(e)
offerFirst(e)在队首增加元素-
offerLast(e)在队尾增加元素offer(e)
removeFirst()移除队首元素,若队列为空,抛出异常-
removeLast()移除队尾元素,若队列为空,抛出异常remove()
pollFirst()移除队首元素,若队列为空,返回null-
pollLast()移除队尾元素,若队列为空,返回nullpoll()
getFirst()获取队首元素,若队列为空,抛出异常-
getLast()获取队尾元素,若队列为空,抛出异常element()
peekFirst()获取队首元素,若队列为空,返回null-
peekLast()获取队首元素,若队列为空,返回nullpeek()
Java中的QueueDeque是两种不同的数据结构。 1. Queue(单向队列)是一种FIFO(先进先出)的数据结构,它继承自Collection接口。Queue有一个直接子类PriorityQueue,它是一个基于优先级的队列,元素按照优先级进行排序。Queue的常用方法包括add()、offer()、remove()、poll()、element()和peek()等。 2. Deque(双向队列)是一种支持在两端添加或移除元素的数据结构,它继承自Queue接口。Deque有两个直接子类:LinkedList和ArrayDeque。LinkedList是基于链表实现的双向队列,而ArrayDeque是基于数组实现的双向队列。Deque的常用方法包括addFirst()、addLast()、offerFirst()、offerLast()、removeFirst()、removeLast()、pollFirst()、pollLast()、getFirst()、getLast()、peekFirst()和peekLast()等。 以下是Java中使用QueueDeque的示例代码: ```java import java.util.Queue; import java.util.LinkedList; import java.util.ArrayDeque; public class QueueDequeExample { public static void main(String[] args) { // 使用Queue Queue<String> queue = new LinkedList<>(); queue.add("apple"); queue.add("banana"); queue.add("orange"); System.out.println("Queue: " + queue); System.out.println("First element: " + queue.peek()); System.out.println("Removed element: " + queue.poll()); System.out.println("Queue after removal: " + queue); // 使用Deque Deque<Integer> deque = new ArrayDeque<>(); deque.addFirst(1); deque.addLast(2); deque.addLast(3); System.out.println("Deque: " + deque); System.out.println("First element: " + deque.getFirst()); System.out.println("Last element: " + deque.getLast()); System.out.println("Removed first element: " + deque.removeFirst()); System.out.println("Deque after removal: " + deque); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值