HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
随笔
关于作者
  • 《PureJavaCoderRoad》

    • 导读

    • Java基础

    • Java进阶

      • 常用类

      • 集合

        • Comparable接口
        • Deque
        • HashCode和equals
        • Iterator与Collection
        • List
        • Map
        • Queue
        • Set
        • Stack
        • 集合类的介绍
      • 反射

      • IO

      • Java新特性

      • 序列化与反序列
      • 泛型
    • Java高阶

    • 开发辅助工具

    • 计算机网络

    • 数据库

    • JavaEE

    • 中间件

    • 架构

    • 建议

  • PureJavaCoderRoad
  • Java进阶
  • 集合
#Queue
码农阿雨
2022-05-26
目录

Queue

# Queue介绍

Queue 是我们常说的队列,队列是一种先进先出的数据结构,元素在队列末尾添加,在队列头部删除。

Queue接口扩展自Collection,并提供插入、提取、检验等操作。

# Queue 接口的API

add()、offer()表示向队列添加一个元素

poll()与remove()方法都是移除队列头部的元素并返回该元素

两者的区别在于如果队列为空,那么poll()返回的是null,而remove()会抛出一个NoSuchElementException异常。

element()与peek()主要是获取头部元素,不删除。

以上6个方法,规律就是 同一个功能有两个方法,区别就是是否抛出异常

抛出异常 返回特殊值
插入 add(e) offer(e)
删除 remove() poll()
检查 element() peek()

# Queue 接口的实现类

Queue 接口的实现类的实现类比较多。常见的有:

  • LinkedList
  • PriorityQueue
  • CustomLinkedQueue
  • DelayQueue

LinkedList支持在两端插入和删除元素,因为LinkedList类实现了Deque接口,所以通常我们可以使用LinkedList来创建一个队列。

LinkedList底层是双向链表的结构,得益于实现了Deque

PriorityQueue类实现了一个优先队列,优先队列中元素被赋予优先级,拥有高优先级的先被删除。

public class QueueTest {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<String>();
        queue.add("1");
        queue.add("2");
        queue.add("3");
        queue.add("3");
        queue.offer("0");
        while (queue.size()>0){
            System.out.print(queue.remove()+" ");
        }
    }
}

控制台打印:

1 2 3 3 0 

# 总结:

Queue 是一个先进先出的数据结构,常见的用法是

Queue<String> queue2 = new LinkedList<String>();

在使用方法时,只有6个API,可以看情况是否需要抛出异常进行选择。

阅读全文
×

(为防止恶意爬虫)
扫码或搜索:HelloCoder
发送:290992
即可永久解锁本站全部文章

解锁
#Queue
上次更新: 2025-09-05 07:09:03
Map
Set

← Map Set→

最近更新
01
阿里面试题(答案)
09-05
02
《LeetCode 101》
09-05
03
《LeetCode CookBook》
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 码农阿雨
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式