一个java项目的根本是由各种数据结构组成,数据结构里又存放着大量的数据,种种才构成了一个完整的项目,本篇文章我们会详细了解项目中常见的数据结构及特点,希望对小伙伴们有所帮助。
数组
简单来说,是指一组是有序的元素序列,数组会在内存中开辟一段连续的空间,并在此空间里存放元素。
数组特点:
查找元素快:通过索引,可以快速访问指定位置的元素
增删元素慢
指定索引位置增加元素:需new一个新数组,并把指定新元素存储在指定索引位置,再把原数组元素根据索引,复制到新数组对应索引的位置。
指定索引位置删除元素:需new一个新数组,然后将原数组元素根据索引,复制到新数组对应索引的位置,原数组中指定索引位置元素不复制到新数组中。
结构示意图:
链表
具体的说,链表是由一系列结点node(链表中每一个元素称为结点)组成的,结点是能够在运行时i动态生成的。
所有结点都包括两个部分:
--存储数据元素的数据域
--存储下个结点地址的指针域
链表结构有有两种,单向链表与双向链表。
链表特点:
查询操作慢:如果想查找某个元素,就需要通过连接节点,依次向后查找指定元素。
增删元素快:
增加元素:修改连接下个元素的地址OK。
删除元素:修改连接下个元素的地址OK。
多个结点之间,可以地址进行连接。
队列
我们简称队,它是跟堆栈一样,也是一种运算受限的线性表,它的限制是仅允许它在表的一端进行插入,在表的另一端进行删除。
特点:
先进先出
队列入口、出口各占一侧。
结构示意图:
简单理解,就是一种每个结点不超过2的有序树 。
之所以这么说,因为它是一种类似于树的结构,只不过每个结点上都最多只能有两个子结点。
结构示意图:
以上就是本篇文章的所有内容,如果还有一些数据结构常见问题不是很懂的话,就快关注奇Q工具网找寻答案吧。
推荐阅读: