前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >队列(Queue)

队列(Queue)

作者头像
GeekLiHua
发布于 2025-01-21 05:12:02
发布于 2025-01-21 05:12:02
12800
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

简介:本文从题目出发,带领大家快速入门,Java中的自带API,Queue的使用。

题解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.*;
import java.io.*;

public class Main
{
	static Queue<Integer> q = new LinkedList<Integer>(); // 如果要使用Queue的话 不能new Queue
	
	public static void main(String [] args) throws IOException
	{
		BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
		int n = Integer.parseInt(reader.readLine());
		while (n -- > 0)
		{
			String [] strs = reader.readLine().split(" ");
			String str = strs[0];
			if (str.equals("push")) q.add(Integer.parseInt(strs[1]));
			else if (str.equals("pop")) q.poll();
			else if (str.equals("empty")) System.out.println(q.isEmpty() ? "YES" : "NO");
			else System.out.println(q.peek());
		}		
	}
}

常用方法

boolean offer(E e) 在不违反容量限制的情况下 把指定元素入队 一般情况下 该方法和add方法差不多

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
		Queue<Integer> queue = new LinkedList<Integer>();
		queue.add(1);
		queue.add(1);
		queue.add(1);
		queue.add(1);
		queue.add(1);
		queue.offer(2);
		System.out.println(queue);
		/*[1, 1, 1, 1, 1, 2]*/
		queue.add(1);
		System.out.println(queue);
		/*[1, 1, 1, 1, 1, 2, 1]*/
	}

E peek() 跟栈的那个一样 就是返回对首的元素 而且不删除这个元素 如果队列为空 返回null 和element() 作用相似

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
		Queue<Integer> queue = new LinkedList<Integer>();
		queue.add(1);
		queue.add(2);
		queue.add(3);
		System.out.println(queue.peek());
		/*1*/
	}

E poll() 删除并返回对首元素 如果队列为空 返回null

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
		Queue<Integer> queue = new LinkedList<Integer>();
		queue.add(1);
		queue.add(2);
		queue.add(3);
		System.out.println(queue.poll());
		/*1*/
		System.out.println(queue);
		/*[2, 3]*/
	}

遍历方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
		Queue<Integer> queue = new LinkedList<Integer>();
		queue.add(1);
		queue.add(2);
		queue.add(3);
		// 方法一
		for (Integer i : queue)
		{
			System.out.print(i + " ");
		}
		/*1 2 3*/
		System.out.println();
		
		// 方法二		
		Iterator<Integer> it = queue.iterator();
		while(it.hasNext())
		{
			System.out.print(it.next() + " ");
		}
		/*1 2 3*/
	}

排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {
		Queue<Integer> queue = new LinkedList<Integer>();
		queue.add(1);
		queue.add(2);
		queue.add(3);
		// queue本身不支持排序 但是可以通过Queue 转 List 来进行自定义排序
		List<Integer> list = new ArrayList<Integer>(queue);
		Collections.sort(list, new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				// TODO Auto-generated method stub
				int num = 0;
				if(o1 > o2) num = -1;
				else num = 1;
				return num;
			}
		});
		System.out.println(list);
		/*[3, 2, 1]*/
	}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
华为2018年校园招聘机试题
01 括号匹配: package huawei; import java.util.Scanner; import java.util.Stack; /** * 给定一个字符串,里边可能包含"()"、"[]"、"{}"三种括号,请编写程序检查该字符串中的括号是否成对出现,且嵌套关系正确。 * 输出: true:若括号成对出现且嵌套关系正确,或该字符串中无括号字符; false:若未正确使用括号字符。 实现时无需考虑非法输入。 输入描述: 输入:字符串 例子:(1+2)/(0
yesr
2019/03/14
1.4K0
Java实现操作系统实验之磁盘调度
这一版的磁盘调度,作者只分析了磁盘通道号,之后作者会加入对最晚完成时间的分析。 首先理解一下,什么是磁盘调度,磁盘调度的意思是,所有的进程都是在磁盘中得某个同道号中享受资源的,那么就会存在一个问题,我们是按什么顺序来执行这些进程呢,
萌萌哒的瓤瓤
2020/08/26
7660
献给阿尔吉侬的花束
今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。
GeekLiHua
2025/01/21
460
Java栈Stack的使用
简介:栈是在现实工程项目中和算法比赛中最常用的数据结构之一,Java内置Stack数据结构,本文旨在用最简洁和快速的方式教会大家使用Stack。
GeekLiHua
2025/01/21
980
Java栈Stack的使用
SpringBoot内部配置加载顺序
M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中; 输入格式 第一行输入整数 n 和 m。
GeekLiHua
2025/01/21
1010
SpringBoot内部配置加载顺序
堆(优先级队列 PriorityQueue)
GeekLiHua
2025/01/21
1050
堆(优先级队列 PriorityQueue)
Hash一致性闭环算法 - ( 适用于Redis扩容、Nginx多级缓存 等等 )
Redis扩容采用Hash闭环、Nginx多级缓存采用Hash闭环+Lua手动负载器 等等其他需要做扩容的方案
Parker
2020/07/21
5.4K0
快速幂讲解
数据范围 1≤n≤100000, 1≤ai,bi,pi≤2×109 输入样例: 2 3 2 5 4 3 9 输出样例: 4 1
GeekLiHua
2025/01/21
520
android简易智能容错计算器
看了一些网上的代码,感觉多少有点问题,有的不能计算浮点数,有的不能计算多位数,或者没办法保证乘除法在加减法的前面,或者不能与负数进行混合运算。
砖业洋__
2023/05/06
3410
android简易智能容错计算器
IDEA快速构建SpringBoot项目
M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中; 输入格式 第一行输入整数 n 和 m。
GeekLiHua
2025/01/21
450
IDEA快速构建SpringBoot项目
PriorityQueue使用
C++默认大顶堆,java默认小顶堆 import java.util.Comparator; import java.util.Iterator; import java.util.PriorityQueue; import java.util.Queue; public class PriorityQueueTest { public static class student { private String name; private int stu_num; public stud
砖业洋__
2023/05/06
1050
【背诵④】保姆级 | 零基础备赛蓝桥杯Java组| 队列的使用
这些例子演示了基础队列方法的使用,包括添加元素、移除元素、获取队列头部元素以及检查队列是否为空。
命运之光
2024/04/15
1170
刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。
用户11369558
2024/12/24
630
刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)
合并集合(并查集)
M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中; 输入格式 第一行输入整数 n 和 m。
GeekLiHua
2025/01/21
850
子矩阵的和
输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。
GeekLiHua
2025/01/21
1070
子矩阵的和
编程思想 之「数组、容器」
我们说,“Java 是面向对象的编程语言”,Java 中的所有行为都是围绕对象进行的,那么 Java 是如何持有对象的呢?实际上,在 Java 中,持有对象的方法只有两种,分别为:
CG国斌
2019/05/26
4930
集合(上)
传统的容器(数组)在进行增、删等破坏性操作时,需要移动元素,可能导致性能问题;同时添加、删除等算法和具体业务耦合在一起,增加了程序开发的复杂度。Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。
Carlos Ouyang
2019/08/19
3210
集合(上)
算法题目
import java.util.*; class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int value){ this.val = value; } } class ListNode { int val; ListNode next; public ListNode(int value){ this.val = value; } } class TrieNode {
大学里的混子
2019/03/08
7400
【笔记】算法OJ 杂记C++ Java 容器使用
使用 collectios 工具类 牛客网在线系统也要 引包 import java.util.*; 或者
韩旭051
2021/04/14
1K0
Java中队列(Queue)用法
队列(Queue)是一种特殊类型的集合,它遵循先进先出(FIFO - First In First Out)原则,这意味着第一个添加到队列的元素将是第一个被移除的元素。
王也518
2024/04/25
2360
相关推荐
华为2018年校园招聘机试题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档