queue 队列



import java.util.ArrayDeque;
import java.util.PriorityQueue;

/* 2017-02-18 09:09:21
 *
 * queue 
 * 用于模拟队列这种数据结构
 *	队列通常是 先进先出  FIFO
 *	队列的头部保存在队列中存放时间最长的元素
 *	队列的尾部保存在队列中存放时间最短的元素
 *	poll操作会返回队列头部的元素,
 *队列不允许随机访问队列中的元素
 *	
 *add  添加元素到尾部
 *offer 将制定元素加入此队列的尾部  当使用有容量限制的队列时 此方法比add好  
 * 
 *element  获取 头部元素 但不删除
 *peek 获取队列头部的元素 但不删除  
 *
 *poll 获取队列头的元素, 并删除
 *remove 获取头部元素并删除
 *
 *
 *
 *	priorityQueue实现类
 *	是一个标准的队列实现类,
 *	是按照队列元素的大小进行重新排序
 *	并不是取出最先进入的元素,而是最小的元素,
 *
 *	Deque接口时queue接口的子接口,它代表一个双端队列
 *	使用的是双端操作方法
 *	
 *	ArrayDeque  是一个典型的实现类
 *	基于数组实现的双端队列
 *	可以指定一个numElements 参数  底层数组的默认长度是16 
 *
 *
 *
 *	arraylist  array deque 两个集合类 的实现机制基本相似 
 *	底层都采用一个动态的、可重分配的object[]	数组来存储集合元素
 */
public class Queuej {
	public static void main(String[] args) {
//		priorityqueue();
		
		//模拟栈
		ArrayDeque	stack  = new ArrayDeque();
		stack.push("ca");
		stack.push("fe");
		stack.push("ba");
		stack.push("be");
		System.out.println(stack);
		
		//模拟队列
		ArrayDeque queue = new ArrayDeque<>();
		queue.offer("ca");
		queue.offer("fe");
		System.out.println(queue.peek());
		System.out.println(queue);
		
	}

	/* 2017-02-18 09:50:22
	 * 
	 */
	private static void priorityqueue() {
		PriorityQueue priorityQueue  = new 	 PriorityQueue();
		priorityQueue.offer(2);
		priorityQueue.offer(3);
		priorityQueue.offer(1);
		priorityQueue.offer(8);
		priorityQueue.offer(6);
		
		System.out.println(priorityQueue);
		// 自然排序  需要实现comparable 接口 是一个类的多个实例  否则导致异常
		// 定制排序   传入一个comparator对象
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值