Java集合框架之Stack Queue Deque使用详解刨析

网友投稿 262 2022-11-29

Java集合框架之Stack Queue Deque使用详解刨析

目录1. Stack1.1 介绍1.2 常见方法2. Queue2.1 介绍2.2 常见方法3. Deque3.1 介绍3.2 常见方法

1. Stack

1.1 介绍

Stack 栈是 Vector 的一个子类,它实现了一个标准的后进先出的栈。它的底层是一个数组。

堆栈只定义了默认构造函数,用来创建一个空栈。堆栈除了包括由 Vector 定义的所有方法,也定义了自己的一些方法。

1.2 常见方法

方法

描述

E push(E item)

压栈

E pop()

出栈

E peek()

查看栈顶元素,不删除

boolean empty()

判断栈是否为空

注意: 下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的

示例一: 用 Stack 构造一个元素为整形的栈

Stack stack = new Stack<>();

示例二: 压栈

stack.push(1);

stack.push(2);

stack.push(3);

// 结果为:[1, 2, 3]

示例三: 查看栈顶元素不删除

System.out.println(stack.peek());

System.out.println(stack);

// 结果为:3 和 [1, 2, 3]

示例四: 出栈

System.out.println(stack.pop());

System.out.println(stack);

// 结果为:3 和 [1, 2]

示例五: 判断栈是否为空

System.out.println(stack.empty());

// 结果为:false

2. Queue

2.1 介绍

Queue 队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。

LinkedList 类实现了 Queue 接口,因此我们可以把 LinkedList 当成 Queue 来用。

2.2 常见方法

方法

描述

boolean offer(E e)

入队列(出现错误返回特殊值)

boolean add(E e)

入队列(出现错误抛异常)

E poll()

出队列(出现错误返回特殊值)

E remove()

出队列(出现错误抛异常)

E peek()

得到队首元素,不删除(出现错误返回特殊值)

E element()

得到队首元素,不删除(出现错误抛异常)

boolean isEmpty()

判断队列是否为空

注意: 接下来使用 LinkedList 演示队列的使用方法,只要把握先进先出的原则就行。下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的

示例一: 使用 LinkedList 创建一个元素为整型的队列

LinkedList linkedList = new LinkedList<>();

示例二: 入队列

linkedList.offer(1);

linkedList.offer(2);

linkedList.offer(3);

示例三: 出队列

System.out.println(linkedList.poll());

// 结果为:1

示例四: 得到队首元素,不删除

System.out.println(linkedList.peek());

// 结果为:2

示例五:GWCxw 判断队列是否为空

System.out.println(linkedList.isEmpty());

// 结果为:false

3. Deque

3.1 介绍

双端队列是指允许两端都可以进行入队和出队操作的队列。元素可以从队头出队和入队,也可以从队尾出队和入队

LinkedList 类实现了 Deque 接口,因此我们可以把 LinkedList 当成 Deque 来用。

3.2 常见方法

方法

描述

http://

boolean offerFirst(E e)

从队头入队

boolean offerLast(E e)

从队尾入队

E pollFirst()

从队头出队

E pollLast()

从队尾出队

E peekFirst()

得到队头元素,不删除

E peekLast()

得到队尾元素,不删除

注意: 接下来使用 LinkedList 演示队列的使用方法,只要把握先进先出的原则就行。下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的

示例一: 使用 LinkedList 创建一个元素为整型的队列

LinkedList linkedList = new LinkedList<>();

示例二: 从队头入队

linkedList.offerFirst(1);

linkedList.offerFirst(2);

linkedList.offerFirst(3);

// 队列为:[3, 2, 1]

示例三: 从队尾入队

linkedList.offerLast(7);

linkedList.offerLast(8);

linkedList.offerLast(9);

// 队列为:[3, 2, 1, 7, 8, 9]

示例四: 从队头出队

System.out.println(linkedList.pollFirst());

// 结果为:3

示例五: 从队尾出队

System.out.println(linkedList.pollLast());

// 结果为:9

示例六: 得到队头元素,不删除

System.out.println(linkedList.peekFirst());

// 结果为:2

示例七: 得到队头元素,不删除

System.out.println(linkedList.peekLast());

// 结果为:8

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android Studio安装与使用
下一篇:POJ 1000 A+B Problem
相关文章

 发表评论

暂时没有评论,来抢沙发吧~