`
李灵晖-raylee
  • 浏览: 135650 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-9.11 Queue

 
阅读更多

这一章节我们来讨论一下队列Queue。

队列对于并发非常的重要,我们这里只是简单讨论一下,在以后讲述并发的时候将详细展开。

1.特性:先进先出,它跟栈的顺序不一样。


2.演示方法

由于LinkedList实现了Queue接口,因此我们将以LinkedList作为例子。

package com.ray.ch09;

import java.util.LinkedList;
import java.util.Queue;

public class Test {
	public static void main(String[] args) {
		Queue<Integer> queue = new LinkedList<Integer>();
		for (int i = 0; i < 10; i++) {
			queue.add(i);
		}
		System.out.println(queue.toString());
		for (int i = 0; i < queue.size(); i++) {
			System.out.print(queue.peek());// 拿出第一个元素
		}
		System.out.println();
		for (int i = 0; i < queue.size(); i++) {
			System.out.print(queue.poll());// 去掉并返回第一个元素
			System.out.println(queue.toString());
		}
	}
}

输出:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0000000000
0[1, 2, 3, 4, 5, 6, 7, 8, 9]
1[2, 3, 4, 5, 6, 7, 8, 9]
2[3, 4, 5, 6, 7, 8, 9]
3[4, 5, 6, 7, 8, 9]
4[5, 6, 7, 8, 9]


具体方法的使用,可以看注释。


3.PriorityQueue

PriorityQueue是一个有默认优先级的队列

package com.ray.ch09;

import java.util.PriorityQueue;
import java.util.Random;

public class Test {
	public static void main(String[] args) {
		PriorityQueue<Integer> integers = new PriorityQueue<Integer>();
		Random random = new Random();
		for (int i = 0; i < 10; i++) {
			integers.offer(random.nextInt(50));
		}
		System.out.println(integers.toString());
		PriorityQueue<String> strings = new PriorityQueue<String>();
		String text = "d,e,T,g,qe,R,j,k,b,h,G,v,Kj,a,d,h,u,f,g,s,ad,jk,f,";
		String[] textArray = text.split(",");
		for (int i = 0; i < textArray.length; i++) {
			strings.offer(textArray[i]);
		}
		System.out.println(strings.toString());
	}
}
输出:

[12, 14, 18, 18, 26, 41, 30, 44, 33, 43]
[G, R, Kj, e, ad, T, a, h, f, b, f, v, d, j, d, k, u, g, g, s, qe, jk, h]

优先级:

数字是从小到大

字符串是大写到小写


总结:这一章节主要讲述了队列的一些例子。


这一章节就到这里,谢谢。

-----------------------------------

目录


分享到:
评论

相关推荐

    前端开源库-promise-queue-plus

    在"promise-queue-plus-master"这个压缩包中,包含了Promise Queue Plus的源代码、文档、示例以及可能的测试用例。开发者可以通过阅读源码了解其内部实现原理,参考文档学习如何在项目中使用,并通过示例快速上手。...

    Android代码-android-priority-jobqueue

    Priority Job Queue is an implementation of a Job Queue specifically written for Android to easily schedule jobs (tasks) that run in the background, improving UX and application stability.

    前端开源库-promise-queue

    Promise Queue 是一个专门用于解决此类问题的开源库,它允许我们以有序、控制流的方式执行基于Promise的异步任务。这个库的核心理念是通过队列机制限制同时运行的任务数量,从而避免系统资源过度消耗,提高应用性能...

    PyPI 官网下载 | dask-jobqueue-0.1.0.tar.gz

    这个压缩包 "dask-jobqueue-0.1.0.tar.gz" 包含了 Dask-Jobqueue 的源代码,版本为 0.1.0。 **Dask-Jobqueue 的核心概念** 1. **分布式集群**: Dask-Jobqueue 提供了一种方式,在传统的批处理作业队列系统上启动和...

    perl-Thread-Queue-3.02-2.el7.noarch.rpm

    离线安装包,亲测可用

    Queue-Queue-Queue

    Queue-Queue-Queue

    rabbitmq-java-client-bin-3.3.4.zip

    在Java客户端中,消费者同样需要建立到服务器的连接和Channel,然后通过声明队列(Queue)并进行绑定(Binding)来监听特定的消息。 3. **交换机(Exchange)**:交换机是RabbitMQ内部的结构,它根据路由键和预定义的路由...

    前端开源库-js-priority-queue

    本文将深入探讨“前端开源库-js-priority-queue”这一主题,它是一个专门为JavaScript设计的优先级队列实现,为前端开发者提供了一种强大的数据结构,用于优化算法和提高代码执行效率。 **优先级队列简介** 优先级...

    精通Java--JDK、数据库系统开发、Web开发基础与实例

    数据集合部分会涵盖Java集合框架,包括List、Set、Queue、Map等各种接口和实现类,以及泛型、迭代器、比较器等相关概念。这部分内容有助于读者在实际开发中高效地管理和操作数据。 网络编程章节则会讲解Java的...

    tp5.1消息队列 think-queue

    标题 "tp5.1消息队列 think-queue" 指的是使用ThinkPHP5.1框架集成的消息队列组件——think-queue。消息队列在软件开发中扮演着重要角色,它允许应用程序异步处理耗时任务,提高系统响应速度和整体性能。think-queue...

    java-Using-Array-for-Queue.zip_java队列实现

    `Queue.java`可能是接口或者抽象类,定义了队列的基本操作,如`offer()`, `peek()`, `poll()`等,`ArrayQueue`和`Vector`可能是实现了这个接口的具体类。 总结来说,这两个实现都展示了如何在Java中构建队列数据...

    killbill-queue-0.2.8.zip

    《killbill-queue-0.2.8.zip》与《matrix-toolkits-java.zip》是两个不同的开源项目,它们在IT领域中各自扮演着重要的角色。让我们分别来探索这两个项目的详细内容。 首先,我们来看《killbill-queue-0.2.8.zip》。...

    android-priority-jobqueue-2.0.2_kevin

    修复android-priority-jobqueue-2.0.1这个开源库cursor没关闭的BUG

    前端项目-jquery-ajaxQueue.zip

    在“jquery-ajaxQueue-master”压缩包中,通常会包含一个js文件,例如“jquery.ajaxQueue.js”,将其链接到HTML文件中。 3. 创建Ajax请求时,使用$.ajaxQueue()替代$.ajax()。例如: ```javascript $.ajaxQueue({ ...

    Arduino-Arduino-Queue.h.zip

    Arduino-Arduino-Queue.h.zip,用于ARDUIO嵌入式项目的通用C 循环队列,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造商的欢迎,Arduino通过开源系统提供了很多灵活性。

    perl-Thread-Queue-3.13-1.el8.noarch(1).rpm

    离线安装包,亲测可用

    第九周-第14章节-Python3.5-队列Queue.avi

    第九周-第14章节-Python3.5-队列Queue.avi

    rabbitmq-java-client-bin-3.3.4

    《RabbitMQ Java客户端3.3.4详解》 RabbitMQ Java客户端是RabbitMQ消息中间件的一个重要组成部分,它允许Java开发者方便地与RabbitMQ服务器进行交互,实现消息的发布与消费。在“rabbitmq-java-client-bin-3.3.4”...

    Laravel开发-laravel-sqs-fifo-queue

    在本文中,我们将深入探讨如何在 Laravel 开发中利用 `laravel-sqs-fifo-queue` 实现对 Amazon Simple Queue Service (SQS) FIFO 队列的支持。首先,让我们理解一下 Laravel 框架、SQS 和 FIFO 队列的基本概念。 **...

    kodi-sync-queue_6.0.0.0.zip

    在了解这个插件之前,我们先来认识一下Jellyfin。 Jellyfin是一款开源的媒体服务器软件,它允许用户管理和流式传输个人媒体库,包括电影、电视节目、音乐和图片等。Jellyfin兼容多种平台,如Windows、Linux、...

Global site tag (gtag.js) - Google Analytics