Java中的栈和队列,ArrayDeque,LinkedList

栈和队列的定义

  • 队列:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front,也叫队头)进行删除操作,而在表的后端(rear,也叫队尾)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
  • 栈:只能在一端(称为栈顶(top))对数据项进行插入和删除。

相关接口和类

Interface Queue<E> 继承了 Collection<E>, Iterable<E>
Interface Deque<E> 继承了 Collection<E>, Iterable<E>, Queue<E>,双端队列
Class ArrayDeque<E> 继承了AbstractCollection<E>,实现了Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, Queue<E>
Class LinkedList<E> 实现了Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, Queue<E>,List<E>

ArrayDeque<E>和LinkedList<E>都实现了双端队列Deque<E>,可以使用ArrayDeque<E>或LinkedList<E>实现栈和队列的功能。ArrayDeque采用数组的实现方式,LinkedList采用链表的实现方法。如果数据量较大,则使用LinkedList,否则优先使用ArrayDeque.

ArrayDeque实现栈的功能

import java.util.ArrayDeque;
import java.util.Deque;

public class CollectionDemo {
   
	public static void main(String[] args) {
   
		Deque<String> stack = new ArrayDeque<String>();	
		// 进栈
		stack.push("aa");
		stack.push("bb");
		
		// 查看栈顶元素
		String top = stack.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值