潍坊Java培训
达内潍坊中心

15265420612

热门课程

图解哈希表和Java线性表

  • 时间:2017-09-29
  • 发布:互联网
  • 来源:互联网

    哈希表(hash table)又称为散列表,或者散列映射、映射、字典和关联数组等.是一种根据键(key)直接访问在内存存储位置的数据结构,也就是我们常说的键值对.

    在之前我们讲过数组,链表,栈,这些数据结构,都是不包含默认逻辑的,可以直接反应数据在内存中的存储位置以及状态.而相较于其他的数据结构,哈希表是一种包含默认逻辑的数据结构,默认逻辑即为需要使用散列函数才能够确定键对应的元素的地址.

    散列函数:一个映射函数,能够将输入映射为一个数字,需要保证的是,每次输入相同数据的时候返回的数字必须一致,以及不同的输入需要返回不同的数字.

    而什么是散列表呢?

    散列表是一个数组,其中储存有通过散列函数返回的结果.如图,需要保证的是不同的输入返回不同的索引,同样的输入返回相同的索引.

    潍坊Java培训

    如果出现两个key返回同样的地址,就是所谓的冲突.一般我们使用语言都有很好的解决,并不需要我们自己来设计,不需要过多关注,如果有兴趣的话无非就是考虑一下降低填装因子和使用更加优良的散列函数.

    线性表(Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列.

    其中:

    数据元素的个数n定义为表的长度 = "list".length() ("list".length() = 0(表里没有一个元素)时称为空表)

    将非空的线性表(n>=0)记作:(a[0],a[1],a[2],…,a[n-1])

    数据元素a[i](0≤i≤n-1)只是个抽象符号,其具体含义在不同情况下可以不同

    一个数据元素可以由若干个数据项组成.数据元素称为记录,含有大量记录的线性表又称为文件.这种结构具有下列特点:存在一个唯一的没有前驱的(头)数据元素;存在一个唯一的没有后继的(尾)数据元素;此外,每一个数据元素均有一个直接前驱和一个直接后继数据元素.

    Java中的线性表

    这篇文章我们来说说Java里一个很重要的数据结构--线性表,还是这张图,线性表对应着下图里的List.

    潍坊Java培训

    红框里的内容就是线性表的大家族了,其中黄色部分是要重点了解的,线性表里的元素是按线性排列的(这里的线性指逻辑上的) 线性表分为两大类,分别是顺序表和链表.

更多潍坊Java培训相关资讯,请扫描下方二维码

潍坊Java培训

上一篇:java的互联网构架算法设计
下一篇:Lucene的全文检索用

php Swoole环境搭建及扩展安装

c语言历史,你知道多少?

SSH框架面试题集锦

mybatis全局变量执行顺序概览

选择城市和中心
贵州省

广西省

海南省