java queue实现接口_Java Queue 接口

Java Queue 接口

在本教程中,我们将学习Java Queue接口及其方法。

Java集合框架的Queue接口提供了队列数据结构的功能。它继承了Collection接口。

实现队列的类

由于Queue是一个接口,因此我们无法提供它的直接实现。

为了使用Queue的功能,我们需要使用实现它的类:

4b70e9a145ce3c6c10001e2dff4648cc.png

继承Queue的接口

Queue接口还可以被各种子接口继承:Deque

BlockingQueue

BlockingDeque

c22d2454b89522db71ed99e071889543.png

队列数据结构的工作流程

在队列中,以先进先出的方式存储和访问元素。也就是说,从后面添加元素,从前面删除元素。

936459bc64c3228099b6b5bf52bfacf0.png

如何使用队列(Queue)?

在Java中,必须导入java.util.Queue包才能使用Queue。

// 使用 LinkedList 创建

Queue animal1 = new LinkedList<>();

// 使用 ArrayDeque 创建

Queue animal2 = new ArrayDeque<>();

// 使用 PriorityQueue创建

Queue animal 3 = new PriorityQueue<>();

在这里,我们分别创建了类LinkedList,ArrayDeque和PriorityQueue的对象Animal1,Animal2和Animal3。 这些对象可以使用Queue接口的功能。

Queue的方法

Queue接口包括Collection接口的所有方法。 这是因为Collection是Queue的超级接口。

Queue接口的一些常用方法是:add() - 将指定的元素插入队列。如果任务成功,则add()返回true,否则将引发异常。

offer() - 将指定的元素插入队列。如果任务成功,则offer()返回true,否则返回false。

element() - 返回队列的开头。如果队列为空,则引发异常。

peek() - 返回队列的开头。 如果队列为空,则返回null。

remove() - 返回并删除队列的头部。如果队列为空,则引发异常。

poll() - 返回并删除队列的开头。 如果队列为空,则返回null。

队列接口的实现

1.实现LinkedList类

示例

import java.util.Queue;

import java.util.LinkedList;

class Main {

public static void main(String[] args) {

// 创建 Queue 使用LinkedList 类

Queue numbers = new LinkedList<>();

//添加元素到 Queue

numbers.offer(1);

numbers.offer(2);

numbers.offer(3);

System.out.println("Queue: " + numbers);

// 访问Queue的元素

int accessedNumber = numbers.peek();

System.out.println("访问元素: " + accessedNumber);

//从队列中Queue元素

int removedNumber = numbers.poll();

System.out.println("删除元素: " + removedNumber);

System.out.println("更新后的 Queue: " + numbers);

}

}

输出结果Queue: [1, 2, 3]

访问元素: 1

删除元素: 1

更新后的 Queue: [2, 3]

2.实现PriorityQueue类

示例

import java.util.Queue;

import java.util.PriorityQueue;

class Main {

public static void main(String[] args) {

// 使用PriorityQueue类创建队列

Queue numbers = new PriorityQueue<>();

//添加元素到 Queue

numbers.offer(5);

numbers.offer(1);

numbers.offer(2);

System.out.println("Queue: " + numbers);

//访问 Queue 的元素

int accessedNumber = numbers.peek();

System.out.println("访问元素: " + accessedNumber);

//从 Queue 删除元素

int removedNumber = numbers.poll();

System.out.println("删除元素: " + removedNumber);

System.out.println("更新后的 Queue: " + numbers);

}

}

输出结果Queue: [1, 5, 2]

访问元素: 1

删除元素: 1

更新后的 Queue: [2, 5]

在接下来的教程中,我们将详细了解该Queue接口的不同子接口及其实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值