Java基础之141Queue、Deque接口 队列与栈

队列(Queue)是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
LinkedList是Queue接口的实现类
boolean add(E e) :将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException。
E element() :获取,但是不移除此队列的头。
boolean offer(E e) :将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。
E peek() :获取但不移除此队列的头;如果此队列为空,则返回 null。
E poll() :获取并移除此队列的头,如果此队列为空,则返回 null。
E remove() :获取并移除此队列的头。

Deque:一个线性 collection,支持在两端插入和移除元素。
此接口既支持有容量限制的双端队列,也支持没有固定大小限制的双端队列。

接口定义在双端队列两端访问元素的方法。提供插入、移除和检查元素的方法。

package com.vince;

import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

/**
 * Queue接口:队列,是一种先进先出的线性数据结构(排队)
 * LinkedList类实现了queue接口
 * 请求队列,消息队列,任务
 * 
 * Deque接口:双端队列
 * Stack:堆栈 :先进后出
 * @author vince
 * @description
 */
public class QueueDequeDemo {
	
	private static void stack(){
		Stack<String> s = new Stack<>();
		//压栈
		s.push("Bin");
		s.push("Tom");
		s.push("Lily");
		
		System.out.println(s.pop());
		System.out.println(s.pop());
		System.out.println(s.pop());
		
		
	}
	private static void deque(){
		Deque<String> deque = new LinkedList<>();
		deque.add("小花");
		deque.add("小黑");
		deque.add("小小");
		deque.add("小白");
		deque.add("小丽");
		
		System.out.println(deque.getFirst());
		System.out.println(deque.getLast());
		
	}
	private static void queue(){
		Queue<String> queue = new LinkedList<>();
		queue.add("小花");
		queue.add("小黑");
		queue.add("小小");
		queue.add("小白");
		queue.add("小丽");
		
		System.out.println(queue.size());
		System.out.println(queue.peek());
		System.out.println(queue.size());
		System.out.println(queue.poll());
		System.out.println(queue.size());
	}

	public static void main(String[] args) {
//		queue();
//		deque();
		stack();
		
	}

}

在这里插入图片描述
队列大小
在这里插入图片描述
peek 找头 检索队列头部 但不移除
在这里插入图片描述
poll 移除队列的头
在这里插入图片描述


双端队列 两边都可以操作
在这里插入图片描述

Deque有很多方法 可以去查API文档
在这里插入图片描述
在这里插入图片描述


Stack 栈 工具类 先进后出的堆栈对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值