& # 8203;先来一张收藏集合图。
今天分享一些关于收藏集合中的列表,讲真的集合这东西在网上真是老生常谈了。说实话连本人都觉得腻了(哈哈),但是话又说回来,整个集合体系对于我们实际开发来说是非常重要的,所以还是有必要系统总结下。
不过在此之前先说说两种数据结构,链表和红黑树。
<强> 1.1,链表强>
& # 8203;链表,链表,由一系列结点节点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表结构有单向链表与双向链表,那么这里给大家介绍的是单向链表。
简单的说,采用该结构的集合,对元素的存取有如下的特点:
多个结点之间,通过地址进行连接,例如,多个人手拉的手,每个人使用自己的右手拉住下个人的左手,依次类推,这样多个人就连在一起了。
查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素。
增删元素快:
-
<李>增加元素:只需要修改连接下个元素的地址即可。李>
删除元素:只需要修改连接下个元素的地址即可。
<强> 1.2,红黑树强>
& # 8203;红黑树是一种自平衡二叉查找树,是计算机科学领域中的一种数据结构,典型的用途是实现关联数组,存储有序的数据。
& # 8203;红黑树本身就是一颗二叉查找树,将节点插入后,该树仍然是一颗二叉查找树。也就意味着,树的键值仍然是有序的。
红黑树的约束:
-
<李>节点可以是红色的或者黑色的。李>
<李>根节点是黑色的。李>
<李>叶子节点(特指空节点)是黑色的。李>
<李>每个红色节点的子节点都是黑色的。李>
<李>任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同。李>
红黑树的特点:
& # 8203;速度特别快,趋近平衡树,查找叶子元素最少和最多次数不多于二倍。
<强> 2.1,简介强>
& # 8203;并不知道接口继承自收集接口,是单列集合的一个重要分支,习惯性地会将实现了<代码> 代码>列表接口的对象称为列表集合。在列表集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,集列表合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。
& # 8203;那么列表接口有什么特点。
-
<李>它是一个元素存取有序的集合。例如,存元素的顺序是1,2,3。那么集合中,元素的存储就是按照1、2、3的顺序完成的)。李>
<李>它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。李>
<李>集合中可以有重复的元素,通过元素的=方法,来比较是否为重复的元素。李>
<强> 2.2,常用方法强>
& # 8203;收集名单接口继承接口,因此在父类接口中的方法,列出子接口全部都有,并且还增加通过索引的方式操作数据。
-
<李> <代码>公共空白添加(int指数E元素)代码>:将指定的元素,添加到该集合中的指定位置上。李>
<李> <代码>公共E (int指数)> 代码:返回集合中指定位置的元素。李>
<李> <代码>公共E删除(int指数)> 代码:移除列表中指定位置的元素,返回的是被移除的元素。李>
<李> <代码>公共E组(int指数E元素)代码>:用指定元素替换集合中指定位置的元素,返回值的更新前的元素。李>
公开课ListDemo { 公共静态void main (String [] args) {//创建集列表合对象 ListJava中数组列表与链表的实现分析