Java中数组列表与链表的实现分析

  

  

& # 8203;先来一张收藏集合图。
  

  

癑ava中数组列表与链表的实现分析"

  

今天分享一些关于收藏集合中的列表,讲真的集合这东西在网上真是老生常谈了。说实话连本人都觉得腻了(哈哈),但是话又说回来,整个集合体系对于我们实际开发来说是非常重要的,所以还是有必要系统总结下。

  

不过在此之前先说说两种数据结构,链表和红黑树。

  

<强> 1.1,链表

  

& # 8203;链表,链表,由一系列结点节点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表结构有单向链表与双向链表,那么这里给大家介绍的是单向链表。

  

癑ava中数组列表与链表的实现分析"

  

简单的说,采用该结构的集合,对元素的存取有如下的特点:

  

多个结点之间,通过地址进行连接,例如,多个人手拉的手,每个人使用自己的右手拉住下个人的左手,依次类推,这样多个人就连在一起了。

  

癑ava中数组列表与链表的实现分析"

  

查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素。

  

增删元素快:

  
      <李>增加元素:只需要修改连接下个元素的地址即可。   
  

癑ava中数组列表与链表的实现分析"

  

删除元素:只需要修改连接下个元素的地址即可。

  

癑ava中数组列表与链表的实现分析"

  

<强> 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) {//创建集列表合对象   List

Java中数组列表与链表的实现分析