Java集合框架之如何使用Stack Queue Deque
本篇内容主要讲解"Java集合框架之如何使用Stack Queue Deque",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java集合框架之如何使用Stack Queue Deque"吧!
目录
1. Stack
1.1 介绍
1.2 常见方法
2. Queue
2.1 介绍
2.2 常见方法
3. Deque
3.1 介绍
3.2 常见方法
1. Stack
1.1 介绍
Stack 栈是 Vector 的一个子类,它实现了一个标准的后进先出的栈。它的底层是一个数组。
堆栈只定义了默认构造函数,用来创建一个空栈。堆栈除了包括由 Vector 定义的所有方法,也定义了自己的一些方法。
1.2 常见方法
方法 | 描述 |
---|---|
E push(E item) | 压栈 |
E pop() | 出栈 |
E peek() | 查看栈顶元素,不删除 |
boolean empty() | 判断栈是否为空 |
注意: 下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的
示例一: 用 Stack 构造一个元素为整形的栈
Stackstack = 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 创建一个元素为整型的队列
LinkedListlinkedList = new LinkedList<>();
示例二: 入队列
linkedList.offer(1);linkedList.offer(2);linkedList.offer(3);
示例三: 出队列
System.out.println(linkedList.poll());// 结果为:1
示例四: 得到队首元素,不删除
System.out.println(linkedList.peek());// 结果为:2
示例五: 判断队列是否为空
System.out.println(linkedList.isEmpty());// 结果为:false
3. Deque
3.1 介绍
双端队列是指允许两端都可以进行入队和出队操作的队列。元素可以从队头出队和入队,也可以从队尾出队和入队
LinkedList 类实现了 Deque 接口,因此我们可以把 LinkedList 当成 Deque 来用。
3.2 常见方法
方法 | 描述 |
---|---|
boolean offerFirst(E e) | 从队头入队 |
boolean offerLast(E e) | 从队尾入队 |
E pollFirst() | 从队头出队 |
E pollLast() | 从队尾出队 |
E peekFirst() | 得到队头元素,不删除 |
E peekLast() | 得到队尾元素,不删除 |
注意: 接下来使用 LinkedList 演示队列的使用方法,只要把握先进先出的原则就行。下面的示例都是一份代码分开拿出来的,上下其实是有逻辑关系的
示例一: 使用 LinkedList 创建一个元素为整型的队列
LinkedListlinkedList = 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
到此,相信大家对"Java集合框架之如何使用Stack Queue Deque"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!