LinkedList

LinkedList 既可以作为队列使用,也可以作为栈使用。

Queue


作为Queue 使用,我们使用offer方法在队尾增加一个元素,poll方法会从队头取出元素。
在LinkedList 实现为,offer(linkLast)、poll(unLinkFirst),一个操作队尾,一个操作队头。

Stack


作为Stack 使用,使用push 把一个元素压入栈中,使用pop 弹出一个元素。在LinkedList 实现为,push(addFirst)、pop(removeFirst),都是操作的队头。

注意,上面的Queue 和 Stack 只是示意图,LinkedList 数据结构使用的为链表,而不是数组。

代码

package com.xinyu.test;import java.util.LinkedList;/*** Created by zy on 2020/4/4.*/
public class LinkedListTest {public static void main(String[] args) {useAsQueue();useAsStack();}/*** 先进先出*/public static void useAsQueue(){LinkedList<Integer> linkedList = new LinkedList<>();linkedList.offer(1);linkedList.offer(2);linkedList.offer(3);while (!linkedList.isEmpty()) {System.out.println(linkedList.poll());}}/*** 先进后出*/public static void useAsStack(){LinkedList<Integer> linkedList = new LinkedList<>();linkedList.push(1);linkedList.push(2);linkedList.push(3);while (!linkedList.isEmpty()){System.out.println(linkedList.pop());}}}

LinkedList 使用巩固及图解相关推荐

  1. 可由一个尾指针唯一确定的链表有_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...

    目录 缓存引爆链表 链表单链表双向链表循环链表双向循环链表 LinkedHashMap实现LRU缓存,源码解析(JDK1.8) 算法 爬楼梯 算法 反转链表 算法 链表环检测 缓存引爆链表 存储结构 ...

  2. Java14-day05【集合(Collection常用方法-遍历、List特有方法、List集合子类特点、LinkedList集合的特有功能、ListIterator)】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  3. 链表数据结构图解 和 代码实现

    项目中经常会用到LinkedList集合来存储数据,打算写一篇LinkedList的源码解析,而LinkedList是基于链表结构存储数据的,这篇博文将解析链表数据结构,包括单向链表和双向链表: 1: ...

  4. 图解HashMap和HashSet的内部工作机制

    转载自 图解HashMap和HashSet的内部工作机制 HashMap 和 HashSet 内部是如何工作的?散列函数(hashing function)是什么? HashMap 不仅是一个常用的数 ...

  5. Redis中数据结构和编码详细图解(应用场景及优缺点)

    专业术语 sds:simple dynamic string 简单动态字符串,redis自己开发的一个字符串的抽象类型 embstr:embedded sds string embstr编码的SDS, ...

  6. 严蔚敏算法约瑟夫环_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...

    目录 缓存引爆链表 链表 单链表 双向链表 循环链表 双向循环链表 LinkedHashMap实现LRU缓存,源码解析(JDK1.8) 算法 爬楼梯 算法 反转链表 算法 链表环检测 缓存引爆链表 存 ...

  7. 万字图解Java多线程,不信你学不会!

    来源:Java面试题精选 前言 java多线程我个人觉得是javaSe中最难的一部分,我以前也是感觉学会了,但是真正有多线程的需求却不知道怎么下手,实际上还是对多线程这块知识了解不深刻,不知道多线程a ...

  8. 面试必会之LinkedList源码分析

    作者:Java知音-微笑面对生活 概述 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的,是线程不安全的,允许元素为null的双向链表. 源码分析 1 ...

  9. 算法(三):图解广度优先搜索算法

    算法(三):图解广度优先搜索算法 算法简介 广度优先搜索算法(Breadth First Search),又称为"宽度优先搜索"或"横向优先搜索",简称BFS: ...

最新文章

  1. 2019北京智源大会完整议程重磅揭晓!
  2. 企业级UML/MDA工具Trufun 2007系列发布!
  3. 抖音访问太频繁-设备注册分析
  4. JavaScript-操作DOM对象-删除dom节点
  5. Android 系统(159)----MTK 平台过CTA时,发生权限未明示问题
  6. 琴生不等式一般形式_[学习笔记]常用不等式
  7. CQUOJ月赛(5月)H题:zzblack与斐波那契数列
  8. 别让这个时代越来越冷漠
  9. Echarts+Vue地图
  10. 概率论 方差公式_斯坦福 CS229 机器学习课程的数学基础(概率论)翻译完成
  11. oracle系统常见错误(摘自文平书)
  12. Verilog 中的Procedural continuous assignments
  13. 免流服务器系统怎么选,免流云服务器选
  14. 数量遗传学 第五章 双亲杂交后代数量性状均值和方差组成
  15. 剑指Offer对答如流系列 - 用两个栈实现队列
  16. 元学习——通过知识迁移的图小样本学习(Graph Few-shot Learning via Knowledge Transfer)
  17. python知到答案_Python语言应用_知到网课答案
  18. Oracle-OGG trail 文件大小引起的进程异常 OGG-01172
  19. ibaits中进行log4j控制台输出
  20. 电子合同作为电子证据的司法认定标准

热门文章

  1. python经典题库和答案_吐血总结,Python经典面试题及答案
  2. oracle 数据分析函数,ORACLE分析函数(一)
  3. ASP.NET 4.0 新特性--Web.Config Transformation(原创)
  4. Django - - 进阶 - - 同源策略和跨域解决方案
  5. 结对第2次作业——WordCount进阶需求
  6. 探究Java虚拟机栈
  7. Android 哥哥福利
  8. 集群四 mysql-5.7.16一键安装
  9. 服务器中加速BIOS启动的方法
  10. 新建并保存一个空的Excel