学习任务:

视频学习

Deque双端队列介绍

Deque栈方法介绍

Deque栈方法测试

Deque接口继承了Queue,Deque称为双端队列,顾名思义是可以在两端(队头和队尾)添加和删除元素。

Deque可以当作FIFO(先进先出)的队列使用,也可以当作(LIFO)后进先出的栈使用。

Deque中继承Queue接口用于Queue的接口在Deque可用,同时也增加了与Queue相同作用的方法,如下:

image-20201013171657704

关于队列的方法可自行测试,下边介绍关于栈的方法。

栈是一种线性表,栈有栈顶和栈底,只能在栈顶操作,操作包括:入栈和出栈,栈具有后进先出的特点,可以结合Java方法栈执行的过程去理解。

image-20201008172929248

从java1.0有一个Stack类,它用于实现栈数据结构的操作。Stack继承Vector类,Vector实现了List接口,Vector与ArrayList的底层都是一个Object[]数组,与ArrayList的区别是Vector是线程安全的,ArrayList是线程不安全的。

注意:Stack和Vector已有相应的替代类,Vector涉及到多线程在多线程章节详细介绍它的替代类,Stack使用Deque替代。

Deque是一个接口,Deque的实现类LinkedList中关于栈的方法介绍如下:

//入栈或压栈
void push(E e)或void addFirst(E e)
//出栈或弹栈
E pop() 或 E removeFirst() 
//检索栈顶元素
E peek()或E peekFirst()
package com.pbteach.javase.pop.linkedlist.test2;

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

/**
 * queue普通队列测试
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class DequeTest2 {
	
	
	public static void main(String[] args) {
		//定义一个栈
		Deque<String> queue = new LinkedList<String>();
		//压栈
		System.out.println("压栈www.pbteach.com");
		queue.push("www.pbteach.com");
		System.out.println("压栈pbteach.com");
		queue.push("pbteach.com");
		//出栈
		System.out.println("出栈:"+queue.pop());;
		System.out.println("出栈:"+queue.pop());;
		
		
	}
	


}

输出:

压栈www.pbteach.com
压栈pbteach.com
出栈:pbteach.com
出栈:www.pbteach.com
提问-攀博课堂
我要提问 不会就问,有效沟通
关注公众号,加入微信群交流提问。 攀博课堂官方公众号
问答列表,查看本知识点所有问题