我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JAVA常见的8种数据结构

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JAVA常见的8种数据结构

        Java中有8种常见数据结构(如上图所示)

       1、 数组(Arrary)

                数组是一种线性结构的数据,连续的存储空间和相同的类型数据。查询速度快,但是数组的容量固定,无法扩容,只能存储同类型的数据,对于添加和删除元素比较慢

        2、栈(Stark)

                栈是一种先进后出的一种结构,好比水桶。例如虚拟机栈,方法栈等

        3、链表(Linked List)

                链表是一种线性的链式结构,链表的内存不是连续的,前一个节点存储的地址不一定就是一个元素,可能是一个引用,通过这个引用可以拿到对应的对象。链表是通过一个节点指向另一个节点的地址将元素串起来。

                单向链表:最简单的链表格式。链表的最小单元为节点,每一个节点包含了数据和指向下一个节点的指针。

                双向链表:两个方向的链表。链表的每个节点包含了数据以及前一个节点地址的指针和后一个节点的地址指针。这种数据结构的好处是通过当前节点可以通过时间复杂度o(1)很快定位到前置节点和后置节点,但是通过前置指针和后置指针的配置增加了内存的消耗。

                循环链表:跟双向列表差不多,但是唯一的区别就是尾节点的后置指针指向头节点,头节点也有指针指向了尾节点。

        3、哈希(Hash)

                哈希也叫做散列。通过key-vlue的方式存储,在很大程度上提高了数据的查询,增加和删除。hash结合数组和链表的特性(数组查询快,链表增删快)。

                Java最经典的HashMap的底层实现是数组+链表+红黑树

                hash函数在hash表中起到至关重要作用,数据通过hash函数生成一个固定的hash值,通过hash值可以很快的定位到元素。但是hash值不是唯一的,就将hash值相同的放入链表中,如果链表的长度超过8,或者大小超过64,就将链表转化为红黑树。

        4、队列(Queue)

                队列是特殊的线性结构,一种先进先出的数据存储结构,数据的删除操作只能在头部操作,插入在尾部操作。

        5、树(Tree)

                树是一种线性结构,有节点组成的集合。

                二叉树:每一个节点最多有两个子树

                完全二叉树:除了最外层节点,其他的节点都达到最大的层数

                满二叉树:一个树的节点要么是叶子节点,要么就是有两个节点

                平衡二叉树:任何节点的子树高度差不超过1;

                二叉查找树:任意节点的左子树都不能为空,并且左子树所有节点的值都小于根节点;任意节点的右子树不能为空,并且右子树所有节点的值都大于根节点;任意节点的左右子树都是一个二叉查找树。

                B树:一种堆读写优化的自平衡二叉树,在数据库索引的常用索引数据的结构。

                B+树:所有非叶子节点都是索引部分,节点中仅包含根节点的最大或者最小的关键字;所有叶子节点包含了所有关键字的信息以及含有这些关键字记录的指针,而且叶子节点数据根据关键节点的大小从小到大排列;m个子树的中间节点包含有m个元素,每个元素不包含数据,只包含索引。

                红黑树

                红黑树是一种平衡二叉树,通过颜色约束树的平衡。每一个元素要么红色,要么黑色;根节点一定是黑色;每个叶子节点都是黑色的;如果一个节点为红色,那么他的所有子节点都是黑色,因为每一条路径上都不能出现相邻两个节点是同一颜色;每一个叶子节点的所有路径存在的黑色节点都相同。

        6、堆(Heap)

                堆是一种特殊的树形结构,父节点的值大于等于子节点的值或者小于子节点的值。对于max heap根节点是所有节点的最大值 或者min heap根节点值是所有节点最小的值。

        7、图(Graph)

                一个图就是一些顶点的集合,这些顶点通过一系列边结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。

                节点之间的关系是任意的,图中任意两个数据元素之间都有可能相关。

        

 

来源地址:https://blog.csdn.net/m554062212/article/details/127916390

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JAVA常见的8种数据结构

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

下载Word文档

猜你喜欢

java常见的数据结构是什么

今天小编给大家分享一下java常见的数据结构是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。本教程操作环境:window
2023-06-30

常见的Java中数据结构面试题

常见的Java中数据结构面试题?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.栈和队列的共同特点是(只允许在端点处插入和删除元素)4.栈通常采用的两种存储结构是(线性存储
2023-05-31

Java常见基本数据结构概览

Java数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。在Java数据结构中最常用的类型无外乎以下几种:Map接口 请注意,Map没有继承Collection接口
2023-05-31

JavaScript数组合并的8种常见方法小结

项目过程中经常会遇到JS数组合并的情况,时常为这个纠结,这里整理一下,下面这篇文章主要给大家介绍了关于JavaScript数组合并的8种常见方法,需要的朋友可以参考下
2022-11-16

Java常见基础数据结构有哪些

这篇文章主要介绍Java常见基础数据结构有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!栈:stack,又称堆栈,他是运算受限的线性表,其限制是仅允许在表的一端进行插入和删除操作,不允许在其他任何位置进行添加、查
2023-06-20

Java常见数据结构和算法有哪些

Java常见的数据结构包括:数组、链表、栈、队列、树、图、堆、哈希表等。常见的算法有:排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序等)、查找算法(如线性查找、二分查找等)、递归算法、动态规划算法、贪心算法、回溯算法、图算法(
2023-09-13

Java数据结构常见排序算法有哪些

今天小编给大家分享一下Java数据结构常见排序算法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、 认识排序在学校中
2023-07-05

Java数据结构常见几大排序是什么

这篇文章给大家分享的是有关Java数据结构常见几大排序是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、排序的概念和分类1.排序的基本概念排序是将一批无序的记录(数据)重新排列成按关键字有序的记录序列的过程
2023-06-29

Java 数据结构中有哪些常见的接口和类

Java 数据结构中有哪些常见的接口和类?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:枚举(
2023-05-31

PHP 数据结构实现的常见问题

PHP 数据结构实现的常见问题队列问题:队列末尾入队操作慢。解决方案:使用环形缓冲区,避免数组重新分配。栈问题:栈满时压栈操作会抛出异常。解决方案:实现一个以数组为基础的栈,并在遇到容量限制时重新调整大小。优先队列问题:比较函数不一致导致
PHP 数据结构实现的常见问题
2024-05-07

Java数据结构之常见排序算法怎么实现

这篇文章主要介绍“Java数据结构之常见排序算法怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java数据结构之常见排序算法怎么实现”文章能帮助大家解决问题。注:后续所说的复杂度 log,都
2023-07-04

C++ 函数库中有哪些常见的数据结构?

c++++ 标准函数库提供了以下常用数据结构:数组:连续内存块,通过索引访问元素。向量:动态大小的数组,可自动增长/缩小,提供高效插入/删除/随机访问。链表:线性数据结构,元素存储在动态分配的节点中,每个节点包含数据和指向下一个节点的指针。
C++ 函数库中有哪些常见的数据结构?
2024-04-18

golang项目中有哪些常见的数据结构

本篇文章为大家展示了golang项目中有哪些常见的数据结构,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是golanggolang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录