zoukankan      html  css  js  c++  java
  • 【散列表】拉链法以及线性探查法

    1.散列表的查找步骤:

    (1)将查找的键用散列函数转化为数组的一个索引

    (2)处理碰撞冲突的过程:拉链法、线性查找法

    2.散列函数的不同类型的不同应用:

    如果键为一个数,可以直接使用

    如果键为一个字符串,如人名,需要将字符串转化为一个数

    如果有多个部分,如邮箱,用某种方法结合起来

    3.正整数的散列函数

    除留余数法:

    选择大小为M的素数(除了1没有其他因数的数)的数组。对于任意数k,计算k除以M的余数。

    4.浮点数:

    将键表示为二进制数,然后应用除留余数法。

    5.字符串:

    6.组合键(年月日)

     7.hashCode()方法

    每一个数据类型的hashCode方法和equals方法必须一致。

    a.equals(b)返回为true时 必须a.hashCode() b.hashCode返回值必须一致

    两个对象a b如果hashCode值相同 ,不一定意味着对象相同,还需要比较equals

    8.HashMap使用hashcode进行索引 

    如果重写了equals方法 必须要看一下hashcode方法

    因为要满足 

    a.equals(b)返回为true时 必须a.hashCode() b.hashCode返回值必须一致

     9.基于拉链法的散列表

     10.基于线性探查法的散列表

  • 相关阅读:
    Scala学习笔记
    flume ng 1.3 安装(转)
    学习scala trait
    scala性能测试
    scala容器使用
    hdu 4607 Park Visit
    FZU 1591 Coral的烦恼
    fzu 1675 The Seventy-seven Problem
    hdu 4602 Partition
    zoj 1842 Prime Distance
  • 原文地址:https://www.cnblogs.com/cckong/p/14361467.html
Copyright © 2011-2022 走看看