Java数据结构
本文章讲解Java基本数据结构@TOC
栈:先进后出
出口和入口在同一侧
队列:先进先出
入口和出口在集合的两侧
数组:查询快,增删慢
查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素
增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须要创建一个新数组把原数组的数据复制过来,原数组会被垃圾回收
在堆内存中,频繁的创建数组,复制数组中的元素,销毁数组,效率低下
链表:查询慢,增删快
查询慢:链表中的地址不是连续的,每次查询元素都必须从头开始查询
增删快:链表增加/删除一个元素,对链表的整体结构没有影响,所以增删快
链表中的每一个元素称之为一个节点,一个节点中包含了一个数据源(存储数据)两个指针域(存储地址)
单向链表:链表中只有一条链子,不能保证元素的顺序
双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合
红黑树
二叉树:分支不能超过两个
排序树/查找树:元素是有大小顺序的,左边小,右边大
红黑树:左边元素和右边元素数量相等,查询速度很快,查询子节点最大次数不能超过两倍