Java数据结构简要
前言
数据结构是什么,数据结构就是数据在存储和数据组织的一种方式,也是一种互相之间存在一种特定关系事件的集合。
在不同的应用场景的情况下选择不同的数据结构可以给我们带来更高的运行和存储效率,数据结构也同高校的算法和索引有关。
数据结构的分类
栈:
栈的特点是先进后出,当有四个元素的时候第一进入的元素会在栈的底部也就是压栈,最后进入的会在最上面
如果栈中3号元素要出来,那么4号就要先出来。
举个列子,就像弹夹一样 在安装子弹的时候第一个子弹会被后面的子弹压在下面而最后一个子弹会在最上面
那开枪的时候也是一样第一被打出来的子弹是最后装上的。
数组:
数组的特点:
数组的特点就是长度不能发生改变,一旦创建长度就会根据定义好的长度在内存中形成,
如果想更改它的长度不得在去创建一个新的数组
但是他的查询速度很快,可以根据数组的地址和索引找到对应的元素
List(有序,可重复)
ArrayList
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
Vector
底层数据结构是数组,查询快,增删慢
线程安全,效率低
链表:
链表的特点:
链表查询慢增删快
单项链表:链表中只有一条连接,不能保证存储和取出的顺序
双向链表:链表中有两天连接,其中一条是专门记录元素顺序的,是一个有序的
LinkedList
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
红黑数:
红黑数的特点:红黑数查询速度非常的快
红黑数的结构有点像我们生活中的树,倒过来的样子,有根节点和叶子节点
最开始的根节点下的叶子节点不确定个数,为了保证查询效率到二叉数,一个跟节点有只有两个叶子节点,但是有可能会往一侧延伸
为了保证查询效率到平衡二叉数,保证了左右的对称。
红黑数是二叉数的一种,它通过一些约束条件更好的加强了查询的效率
TreeMap
底层数据结构是红黑树。(是一种自平衡的二叉树)
TreeSet
底层数据结构是红黑树。(是一种自平衡的二叉树)
总结
了解数据结构中的特点和对应的集合,可以让我们在学习对应的集合时候更加方便去掌握
|
|