写点什么

【Java 集合框架】Stack、Queue 和 Deque 的使用

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:1389 字

    阅读完需:约 5 分钟

| --- | --- |


| E push(E item) | 压栈 |


| E pop() | 出栈 |


| E peek() | 查看栈顶元素,不删除 |


| boolean empty() | 判断栈是否为空 |


注意: 下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的


示例一: 用 Stack 构造一个元素为整形的栈


Stack<Integer> stack = new Stack<>();


示例二: 压栈


stack.push(1);


stack.push(2);


stack.push(3);


// 结果为:[1, 2, 3]


示例三: 查看栈顶


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


元素不删除


System.out.println(stack.peek());


System.out.println(stack);


// 结果为:3 和 [1, 2, 3]


示例四: 出栈


System.out.println(stack.pop());


System.out.println(stack);


// 结果为:3 和 [1, 2]


示例五: 判断栈是否为空


System.out.println(stack.empty());


// 结果为:false


2. Queue


============================================================================


2.1 介绍




Queue 队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。


LinkedList 类实现了 Queue 接口,因此我们可以把 LinkedList 当成 Queue 来用。


2.2 常见方法




| 方法 | 描述 |


| --- | --- |


| boolean offer(E e) | 入队列(出现错误返回特殊值) |


| boolean add(E e) | 入队列(出现错误抛异常) |


| E poll() | 出队列(出现错误返回特殊值) |


| E remove() | 出队列(出现错误抛异常) |


| E peek() | 得到队首元素,不删除(出现错误返回特殊值) |


| E element() | 得到队首元素,不删除(出现错误抛异常) |


| boolean isEmpty() | 判断队列是否为空 |


注意: 接下来使用 LinkedList 演示队列的使用方法,只要把握先进先出的原则就行。下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的


示例一: 使用 LinkedList 创建一个元素为整型的队列


LinkedList<Integer> linkedList = new LinkedList<>();


示例二: 入队列


linkedList.offer(1);


linkedList.offer(2);


linkedList.offer(3);


示例三: 出队列


System.out.println(linkedList.poll());


// 结果为:1


示例四: 得到队首元素,不删除


System.out.println(linkedList.peek());


// 结果为:2


示例五: 判断队列是否为空


System.out.println(linkedList.isEmpty());


// 结果为:false


3. Deque


============================================================================


3.1 介绍




双端队列是指允许两端都可以进行入队和出队操作的队列。元素可以从队头出队和入队,也可以从队尾出队和入队


LinkedList 类实现了 Deque 接口,因此我们可以把 LinkedList 当成 Deque 来用。


3.2 常见方法




| 方法 | 描述 |


| --- | --- |


| boolean offerFirst(E e) | 从队头入队 |


| boolean offerLast(E e) | 从队尾入队 |


| E pollFirst() | 从队头出队 |


| E pollLast() | 从队尾出队 |


| E peekFirst() | 得到队头元素,不删除 |


| E peekLast() | 得到队尾元素,不删除 |


注意: 接下来使用 LinkedList 演示队列的使用方法,只要把握先进先出的原则就行。下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的


示例一: 使用 LinkedList 创建一个元素为整型的队列


LinkedList<Integer> linkedList = new LinkedList<>();


示例二: 从队头入队


linkedList.offerFirst(1);


linkedList.offerFirst(2);


linkedList.offerFirst(3);


// 队列为:[3, 2, 1]

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
【Java 集合框架】Stack、Queue 和 Deque 的使用