欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Queue队列

程序员文章站 2024-03-19 23:10:52
...

Queue队列

队列是一种FIFO(First Input First Output、先进先出)的线性数据结构,所有的数据通过队列尾部进行添加,而后再通过队列前端进行取出
Queue队列

Queue队列
Queue接口常用方法
Queue队列
范例:使用Queue实现队列存储

package com.lxh.eighteenchapter;

import java.util.PriorityQueue;
import java.util.Queue;

public class avaCollectionDemo510 {

	public static void main(String[] args) {
		// PriorityQueue为优先级队列,会自动为队列中的数据进行排序操作,排列需要Comparable支持
       Queue<String> queue=new PriorityQueue<>();
       System.out.println(queue.add("张三")); // 队尾存储数据
       System.out.println(queue.offer("李四"));// 队尾存储数据
       System.out.println(queue.offer("王五"));// 队尾存储数据
       System.out.println(queue.poll());//队首获取数据并删除
       System.out.println(queue.poll());//队首获取数据并删除
       System.out.println(queue.poll());//队首获取数据并删除
       System.out.println(queue); // 此时为空队列

	}
}

执行结果

true
true
true
张三
李四
王五
[]

Deque双端队列

从JDK 1.6开始为了方便队列操作,为Queue定义了一个Deque子接口,Deque接口的最大特点可以实现数据的FIFO与FILO(First Input Last Output、先进后出)操作,即:队尾和队首都可以进行数据操作
Queue队列
范例:范例:使用Deque实现双端队列操作


import java.util.Deque;
import java.util.LinkedList;

public class JavaCollectionDemo511 {
	public static void main(String[] args) {
		Deque<String> deque = new LinkedList<String>(); // 实例化Deque队列
		deque.offer("张三");	// 队尾存储数据
		deque.offerFirst("李四");	// 队首存储数据
		deque.offerLast("王五");	// 队尾存储数据
		System.out.println(deque);	// 输出队列数据
		System.out.println(deque.poll());	// 从队首获取数据并删除
	}

}

执行结果

[李四, 张三, 王五]
李四

相关标签: Java se