java集合框架:集合相关的数据结构

常见的数据结构

  • :先进后出

  • 队列:先进先出

  • 数组

    查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素

    增删慢:数组的长度是固定的,我们想要怎能增加、删除一个元素,必须创建一个新数组,把原数组的数据复制过来。(在堆内存中,频繁的创建数组,复制数组中的元素,销毁源数组,效率低下)

    • 在堆内存中,频繁的创建数组,复制数组中的元素,销毁数组,效率低下
  • 链表

    查询慢:链表中的地址不是连续的,每次查询元素都必须从头开始查询

    增删快:链表结构,增加/删除一个元素,对链表的整体结构没有影响,所以增删快。

    • 链表中每一个节点包含了一个数据源(存储数组),两个指针域(存储地址)

    单向链表:链表中只有一条链子,不能保证元素的顺序(存储元素和取出元素的顺序可能不一致)(类似自行车链子)无序的

    双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合。

  • 红黑树:

    • 二叉树:分支不能超过两个,分为左孩子,右孩子

    • 排序树/查找树:在二叉树的基础上,元素是有大小顺序的,左子树小,右子树大

    • *衡树:左孩子数量等于右孩子的数量。

    • 不*衡树:左孩子不等于右孩子,数量不一样

    • 红黑树:

      特点:趋*于*衡树,查询的速度非常快,查询叶子节点最大次数和最小次数不超过2倍(从根到叶子的最长的可能路径不多于最短的可能路径的两倍长)
      约束:

      1. 节点是红色或者是黑色的
      2. 根节点是黑色的
      3. 叶子节点(空节点)是黑色的
      4. 每个红色的节点的子节点都是黑色的
      5. 任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同。
posted @ 2020-12-29 14:50  迪迦是真的  阅读(84)  评论(0)    收藏  举报
//复制代码按钮 //代码行号 //评论