iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java集合框架之Stack Queue Deque使用详解刨析
  • 471
分享到

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

2024-04-02 19:04:59 471人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

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

1. Stack

1.1 介绍

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

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

1.2 常见方法

方法 描述
E push(E item) 压栈
E pop() 出栈
E peek() 查看栈顶元素,不删除
boolean empty() 判断栈是否为空

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

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


Stack<Integer> 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<Integer> linkedList = 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 创建一个元素为整型的队列


LinkedList<Integer> 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

到此这篇关于Java集合框架之Stack Queue Deque使用详解刨析的文章就介绍到这了,更多相关Java 集合框架内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java集合框架之Stack Queue Deque使用详解刨析

本文链接: https://www.lsjlt.com/news/155345.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java集合框架之Stack Queue Deque使用详解刨析
    目录1. Stack1.1 介绍1.2 常见方法2. Queue2.1 介绍2.2 常见方法3. Deque3.1 介绍3.2 常见方法1. Stack 1.1 介绍 Stack 栈...
    99+
    2024-04-02
  • Java集合框架之List ArrayList LinkedList使用详解刨析
    目录1. List1.1 List 的常见方法1.2 代码示例2. ArrayList2.1 介绍2.2 ArrayList 的构造方法2.3 ArrayList 底层数组的大小3....
    99+
    2024-04-02
  • Java 集合框架 Queue 和 Stack 体系
    目录StackQueueDeque其他特性BlockingQueue特点PriorityQueue 优先级队列特点扩容机制ArrayDeque继承关系底层实现扩容机制总结Stack ...
    99+
    2024-04-02
  • Java集合框架之Map详解
    目录1、Map的实现2、HashMap 和 Hashtable 的区别3、介绍下对象的 hashCode()和equals(),使用场景4、HashMap和TreeMap应该怎么选择...
    99+
    2024-04-02
  • Java基础之集合框架详解
    目录一、前言二、集合的由来?三、集合和数组的区别?四、Collection集合的功能概述?五、Collection集合存储字符串并遍历?(迭代器)六、...
    99+
    2024-04-02
  • Java集合框架之Set和Map详解
    目录Set接口HashSetTreeSetMap接口HashMapTreeMapSet接口 set接口等同于Collection接口,不过其方法的行为有更严谨的定义。set的add...
    99+
    2024-04-02
  • Java基础详解之集合框架工具Collections
    目录一、Collections二、Collections中的常见方法三、Aarrays:用于对数组操作的工具类四、二分查找过程中的默认比较器五、集合转化为数组六、增强for循环七、关...
    99+
    2024-04-02
  • Java集合框架概览之ArrayList源码分析
    今天小编给大家分享一下Java集合框架概览之ArrayList源码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、从一...
    99+
    2023-07-05
  • Java集合框架LinkedList详解及实例
    Java集合框架LinkedList详解LinkedList定义package java.util;public class LinkedList<E> extends AbstractSequentialList<E&g...
    99+
    2023-05-31
    java linkedlist ava
  • Java数据结构之集合框架与常用算法详解
    目录1 集合框架1.1 集合框架概念1.2 容器涉及的数据结构2 算法2.1 算法概念2.2 算法效率3 时间复杂度3.1 时间复杂度概念3.2 大O的渐进表示法3.3 推导大O阶方...
    99+
    2023-05-18
    Java集合框架 Java算法
  • Java 集合框架之List 的使用(附小游戏练习)
    目录1. List1.1 List 的常见方法 1.2 代码示例 2. ArrayList2.1 介绍2.2 ArrayList 的构造方法2.3 ArrayList 底层数组的大小...
    99+
    2024-04-02
  • Java集合类之Map集合的特点及使用详解
    目录1、Map集合概述和使用1.1 Map集合概述1.2 Map集合常用方法1.3 Map集合的遍历1、Map集合概述和使用 1.1 Map集合概述 java.util接口 Map&...
    99+
    2024-04-02
  • Java集合框架之PriorityQueue优先级队列实例分析
    这篇文章主要讲解了“Java集合框架之PriorityQueue优先级队列实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java集合框架之PriorityQueue优先级队列实例分析...
    99+
    2023-07-02
  • java集合类源码分析之Set详解
    Set集合与List一样,都是继承自Collection接口,常用的实现类有HashSet和TreeSet。值得注意的是,HashSet是通过HashMap来实现的而TreeSet是通过TreeMap来实现的,所以HashSet和TreeS...
    99+
    2023-05-31
    java 集合类源码 set
  • java核心集合框架JCF怎么使用
    Java核心集合框架(Java Collections Framework,简称JCF)是Java提供的一组用于处理集合数据的类和接...
    99+
    2023-10-24
    java JCF
  • Java超详细图解集合框架的数据结构
    目录1、什么是集合框架?2、Collection接口1.通过泛型来指定相应集合中的对象类型2.Collection常见方法使用3、Map 接口Map常见方法使用4、具体的实现类1、什...
    99+
    2024-04-02
  • Java集合框架最全详解(看这篇就够了)
    Java集合体系框架 Java集合类主要由两个根接口Collection和Map派生出来的。 Collection派生出了三个子接口: 1)List List代表了有序可重复集合,可直接根据元素的索引来访问 2)Set Set代表...
    99+
    2023-09-08
    面试 程序人生 分布式 数据结构 java
  • java集合框架的使用场景有哪些
    本篇内容介绍了“java集合框架的使用场景有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、集合框架的认识对于集合框架的认识,为了防止...
    99+
    2023-06-19
  • Java集合框架全解析:解剖数据结构,揭秘高效存储之道
    Java集合框架概述 Java集合框架是Java编程语言的重要组成部分,它提供了一系列可以存储和管理数据的容器类库。这些容器类库具有不同的数据结构,可以满足不同场景下的数据存储和处理需求。集合框架的优势在于它提供了统一的接口,使得开发人...
    99+
    2024-02-22
    Java 集合框架 数据结构 存储 效率
  • pytest框架之fixture详细使用详解
    本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作