首页 > 编程语言 >Java常见数据结构

Java常见数据结构

时间:2024-08-19 22:58:47浏览次数:10  
标签:结点 常见 Java 队列 元素 链表 移除 基本操作 数据结构

Java常见的数据结构:

  • 1.栈
  • 2.队列
  • 3.数组
  • 4.链表
  • 5.二叉树
  • 6.二叉查找树
  • 7.平衡二叉树
  • 8.红黑树
  • 9.哈希表

1.栈

  • 特点: “先进后出,后进先出”

    栈数据结构

  • 基本操作:
    • push(入栈): 将元素推入栈中。
    • pop(出栈): 从栈中移除并返回顶部的元素。
    • peek(或top): 查看栈顶的元素,但不移除它。
    • isEmpty: 检查栈是否为空。
    • size: 返回栈中元素的数量(有些实现可能不提供此功能)。

2.队列

  • 特点:“先进先出,后进后出”

队列数据结构

  • 基本操作:
    • enqueue: 将一个元素添加到队列的末尾。
    • dequeue: 从队列的前端移除并返回元素。
    • peek(或front):查看队列前端的元素,但不移除它。
    • isEmpty: 检查队列是否为空。
    • size: 返回队列中元素的数量(有些实现可能不提供此功能)。

3.数组

  • 特点:创建后固定大小,内存连续性,查询快,增删慢

数组结构

  • 基本操作:
    • 访问元素:通过索引访问特定位置的元素
      • 示例: int firstNumber = numbers[0]; // 获取第一个元素的值
    • 修改元素:通过索引修改特定位置的元素
      • 示例: firstNumber[0] = 10; // 将第一个元素的值设置为10

4.链表

单项链表

  • 结点结构:

    单向链表结点结构

  • 链表结构:

    单向链表结构

  • 特点:
    • 链表中的结点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址
    • 查询慢,无论操作哪个数据都要从头开始找
    • 相对于数组,增删较快

双项链表

  • 结点结构
双向链表结点结构
  • 链表结构
    双向链表结构
  • 特点:
    • 既可以往前走,也可以往后走

标签:结点,常见,Java,队列,元素,链表,移除,基本操作,数据结构
From: https://blog.csdn.net/m0_72057247/article/details/141336764

相关文章

  • day03(数据结构)顺序表
    线性表线性表是最基本、最简单、也是最常用的一种数据结构,可以存储逻辑关系为线性的数据。线性表(linearlist)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。包含:顺序表(数组)、链表(单向链表、单向循环链表、双向链表、双向循环链表)、栈(顺序栈、链......
  • Java数组02:数组内存分析、三种初始化方式及特点
    本节内容视频链接:Java数组03:三种初始化及内存分析_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p=53&vd_source=b5775c3a4ea16a5306db9c7c1c1486b51.数组内存分析堆:存放new的对象和数组;可以被所有线程共享,不会存放别的对象引用;栈:存放基本变量类型,会包含......
  • Java数组03:数组边界、数组的使用
    本节内容视频链接:https://www.bilibili.com/video/BV12J41137hu?p=55&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p=55&vd_source=b5775c3a4ea16a5306db9c7c1c1486b51.数组边界数组下标的合法区间[0,Length-1],如果越界就会报......
  • Java中的集合
    Java中的集合一、Iterable1.1、Iterable简介1.2、Iterable功能1.3、使用场景1.4、实现Iterable接口二、Collection2.1、Collection接口的功能2.2、使用场景2.3、实现方法2.4、优点2.5、可能的限制三、ArrayList3.1、底层数据结构3.2、......
  • lg根号数据结构
    根号数据结构序列分块通过将序列分成小段,整块标记,不足整块的暴力,以平衡修改查询的复杂度。如果两个操作的调用次数有较大差异,可以使用分块维护更多/更少信息来平衡两边的时间复杂度。请注意并非选择“更快”的数据结构就更好,比如树状数组看似更平衡,但是修改和询问的次数不平衡......
  • 云计算实训31——playbook(剧本)基本应用、playbook常见语法、playbook和ansible操作
    playbook(剧本):是ansible⽤于配置,部署,和管理被控节点的剧本。⽤于ansible操作的编排。使⽤的格式为yaml格式一、YMAL格式以.yaml或.yml结尾⽂件的第⼀⾏以"---"开始,表明YMAL⽂件的开始(可选的)以#号开头为注释列表中的所有成员都开始于相同的缩进级别,并且使⽤⼀......
  • JAVA基础:File类
    目录前言file对象的创建file的常用方法前言file类表示的是系统中的一个文件或者文件夹file类和系统中的文件或者文件夹不需要是一一对应的,我们可以在file类中写你系统中不存在的文件或文件夹file类中存储的实际上是文件或文件夹的抽象路径,这些路径可以是绝对路径也可......
  • tcp与udp的总结+connect阻塞+tcp三次握手、四次挥手+常见的服务器IO(发送数据+接收数
    一,TCP与UDP的基本总结TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议。TCP是面向连接的,提供可靠、顺序的传输,适用于需要高可靠性的应用,如网页浏览和文件传输。它通过重传机制和流量控制确保数据完整性。UDP是无连接的,速度快但不保证数据的可靠性和顺序,适用于对实时性......
  • javase—day07
    aObjectStream_ObjectInPutStreamDemo02packagecom.se.aObjectStream;importjava.io.BufferedInputStream;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.ObjectInputStream;/***反序列化的类型:*ObjectInputStream(InputStreami......
  • String类常见方法
    常见方法-charAt(intindex):返回字符串指定位置的字符publicclassCharAtExample{publicstaticvoidmain(String[]args){Stringgreeting="Hello";//定义一个字符串intindex=1;//选择一个索引,例如1,表示第二个字符//使用charAt......