LinkedList可以同时作为堆栈和队列使用
Java里的LinkedList可以同时作为堆栈和队列使用,因此在使用的时候总是会弄混他们的方法,此文就简单总结一下作为不同数据结构使用时的用法。
作为队列

声明
任意两种方法:
- 一是直接声明LinkedList:
LinkedList<T> q = new LinkedList<T>(); - 或者使用java.util.Queue接口,其底层关联到一个LinkedList实例。
Queue<T> q = new LinkedList<T>();
由于只暴露部分基于队列实现的接口,所以可以提供安全的队列实现。 
入队
void offer(T v)
出队
T poll(), 如果队列为空,则返回nullT remove(), 如果队列为空,则抛出异常
偷看
看看队首元素不移除它。
T peek(), 如果队列为空,则返回nullT element(), 如果队列为空,则抛出异常
是否为空
boolean isEmpty(), 空返回true,否则返回false
作为堆栈

声明
任意两种方法:
- 一是直接声明LinkedList:
LinkedList<T> stack = new LinkedList<T>(); - 请注意,LinkedList实现的堆栈名称是Deque:
Deque<T> stack = new LinkedList<T>();
由于只暴露部分基于堆栈实现的接口,所以可以提供安全的队列实现。 
入栈
void addFirst(T v)
void push(T v)
出栈
T pop()T poll()
偷看
看看队首元素不移除它。
T peek(), 如果队列为空,则返回nullT element(), 如果队列为空,则抛出异常
是否为空
boolean isEmpty(), 空返回true,否则返回false
LinkedList可以同时作为堆栈和队列使用的更多相关文章
- 面试题:使用LinkedList来模拟一个堆栈或者队列数据结构
		
请使用LinkedList来模拟一个堆栈或者队列数据结构. 堆栈:先进后出 First In Last Out (FILO) 队列:先进先出 First In First Out (FIFO) 我 ...
 - 集合框架-LinkedList集合练习(堆栈和队列)
		
1 package cn.itcast.p2.linkedlist.test; 2 3 import java.util.LinkedList; 4 5 /* 6 * 请使用LinkedList来模拟 ...
 - 使用LinkedList模拟一个堆栈或者队列数据结构
		
使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出 如同一个杯子. 队列:先进先出 如同一个水管. import java.util.LinkedList; public cl ...
 - Java LinkedList特有方法程序小解 &&  使用LinkedList 模拟一个堆栈或者队列数据结构。
		
package Collection; import java.util.LinkedList; /* LinkedList:特有的方法 addFirst()/addLast(); getFirst( ...
 - java 使用LinkedList模拟一个堆栈或者队列数据结构
		
近期在复习下java基础,看了下java基础,在看到集合时突然发现想起来曾经面试有一道笔试题:模拟一个堆栈或者队列数据结构,当时还没做出来,今天就写一下,首先得明确堆栈和队列的数据结构 堆栈:先进后出 ...
 - java集合 collection-list-LinkedList  模拟一个堆栈或者队列数据结构。
		
/* 使用LinkedList模拟一个堆栈或者队列数据结构. 堆栈:先进后出 如同一个杯子. 队列:先进先出 First in First out FIFO 如同一个水管. */ import jav ...
 - JavaScript学习笔记之  数组方法一 堆栈 和队列
		
数组的方法 以及 堆栈的操作的方法 JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操 ...
 - python学习笔记六——堆栈和队列
		
4.2.3 列表的查找.排序.反转 list列表可以进行添加.删除操作,此外List列表还提供了查找元素的方法.list列表的查找提供了两种方式,一种是使用index方法返回元素在列表中的位置,另一种 ...
 - python实现堆栈和队列
		
利用python列表实现堆栈和队列 堆栈: 堆栈是一个后进先出的数据结构,其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出. 我们可以设置一个类,用列表来存放栈中的元素的信息,利用列表的app ...
 - 【IT笔试面试题整理】堆栈和队列
		
如何准备: Whether you are asked to implement a simple stack / queue, or you are asked to implementa modi ...
 
随机推荐
- 痞子衡嵌入式:在i.MXRT启动头FDCB里配置串行NOR Flash多个寄存器的注意事项
			
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在FDCB里配置串行NOR Flash多个寄存器的注意事项. 关于使用 i.MXRT 启动头 FDCB 来设置 Flash 内部寄存器, ...
 - 如何制作一个HTML页面的锁屏功能
			
如果后台一些界面比较敏感,希望主动或者被动的在人员不想暴露信息的情况下加一把锁,就是说避免信息一直在页面上暴露,可以使用"阅后即焚"这种思路,这种思路比较简单,显示了就过几秒删除, ...
 - Elasticsearch之基本使用
			
这里大概解答下各个目录.配置文件的作用: 目录 配置文件 描述 bin 放置脚本文件,如启动脚本 elasticsearch, 插件安装脚本等. config elasticserch.yml e ...
 - 雪碧图的魔力:优化CSS动画场景
			
什么是雪碧图 雪碧图(CSS Sprites),是一种网页图像处理技术,它将多个小图标或图像合并成一个大的图像文件.这种方法允许浏览器通过一次HTTP请求加载多个图像,而不是为每个小图标单独发起请求. ...
 - 从源码分析 GMP 调度原理
			
本身涉及到的 go 代码 都是基于 go 1.23.0 版本 传统 OS 线程 线程是 CPU 的最小调度单位,CPU 通过不断切换线程来实现多任务的并发.这会引发一些问题(对于用户角度): 线程的创 ...
 - 中电金信:GienTech动态|一波好消息→中标!多领域“开花”
 - uni-app微信小程序GPS位置获取爬坑
			
前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,现在所在公司项目有抖音.快手.微信.支付.APP端, ...
 - 第36次ccf-csp题解(思维)
			
比赛链接 https://sim.csp.thusaac.com/contest/36/home 比赛感受 这会刚打完上海icpc,比起区域赛的题,这个简单太多了. 感受还不错,写的很顺手.除了第 ...
 - Qt支持RKMPP硬解的视频监控系统/性能卓越界面精美/实时性好延迟低/录像存储和回放/云台控制
			
一.前言 之前做的监控系统,已经实现了在windows上硬解码比如dxva2和d3d11va,后续又增加了linux上的硬解vdpau的支持,这几种方式都是跨系统的硬解实现方案,也是就是如果都是win ...
 - Qt编写4K/8K大分辨率播放器(8K占用1%CPU)
			
一.前言 在经过多种内核的洗礼以后,逐渐对不同内核的不同音视频文件和视频流进行大量的对比测试,比如测试对各种格式的支持性,对各种网络流的支持程度,在同一个地址下占用的CPU/GPU资源比对,最终发现播 ...