hash
有个叫hashCode的方法。有个叫hashTable的玩意。你看下hashTable的代码吧。

解决方案 »

  1.   

    哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。
      哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。 
      哈希
      通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名。也称为“消息摘要”。
      

  2.   

    特别查了一下网页:http://searchsqlserver.techtarget.com/definition/hashing
    原来hash是一个短的key值,来代替原有的对象,这样查询的效率就会高非常多的倍数。
    也可以用在通信方面,比如两个系统有相同的hash函数,这样就不需要传递大的对象,只需要传递hash值给对方,然后,对方在根据hash函数本地计算出对象。
    觉得很棒。
      

  3.   

    哈希算法存取之所以快,是因为其 直接通过关键字key得到要存取的记录内存存储位置试想这样的场景,你很想学太极拳,听说学校有个叫张三丰的人打得特别好,于
    是你到学校学生处找人,学生处的工作人员可能会拿出学生名单,一个一个的查找,
    最终告诉你,学校没这个人,并说张三丰几百年前就已经在武当山作古了。可如果你
    找对了人,比如在操场上找那些爱运动的同学,人家会告诉你,"哦,你找张三丰呀,
    有有有,我带你去。于是他把你带到了体育馆内,并告诉你,那个教大家打太极的小
    伙子就是张三丰',原来"张三丰.是因为他太极拳打得好而得到的外号。
    学生处的老师找张三丰,那就是顺序表查找,依赖的是姓名关键字的比较。而通
    过爱好运动的同学询问时,没有遍历,没有比较,就凭他们"欲找太极'张三丰',必
    在体育馆当中"的经验,直接告诉你位置。
    也就是说,我们只需要通过某个函数f,使得
    存储位置=f (关键字)
    那样我们可以通过查找关键字不需要比较就可获得需要的记录的存储位置。这就
    是一种新的存储技术一一散列技术(哈希算法)。
    散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得
    每个关键字key 对应一个存储位置f (key)。查找时,根据这个确定的对应关系找到
    给定值key 的映射f (key) ,若查找集合中存在这个记录,则必定在f (key) 的位
    置上。
    这里我们把这种对应关系f 称为散列函数, 又称为哈希(Hash) 函数。按这个思
    想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列
    表或哈希表(Hash table)。 那么关键字对应的记录存储位置我们称为散列地址。
    整个散列过程其实就是两步。
    (1) 在存储时,通过散列函数计算记录的散列地址,并按此散列地址存储该记
    录。
    (2) 当查找记录时,我们通过同样的散列函数计算记录的散列地址,按此散列地
    址访问该记录。由于存取用的是同一个散列函数, 因此结果当然也是相同的。
    所以说,散列技术既是一种存储方法,也是一种查找方法。然而它与线性表、
    树、图等结构不同的是,前面几种结构,数据元素之间都存在某种逻辑关系,可以用
    连线图示表示出来,而散列技术的记录之间不存在什么逻辑关系,它只与关键字有关
    联。因此,散列主要是面向查找的存储结构。
    我们时常会碰到两个关键字key1 != key2,但是却有f(key1) = f(key2),这种现象
    我们称为哈希冲突,如果没有哈希冲突,散列表是一种非常高效的查找数据结构,
    其时间复杂度为O(1);
    这里简单列举常见的查找方法:
    顺序表查找:
    有序查找: 
       折半查找
       插值查找
       斐波那契查找
    线性索引查找:
       稠密索引
       分块索引
         倒排索引
    二叉排序树动态查找:
       平衡二叉树(AVL树)
           多路查找树(B树)
    http://blog.csdn.net/sc6231565/article/details/25653349
      

  4.   

    最最简单易懂的说法就是,hash算法将你传入的key运算成一个地址值,类似指针那样,指向内存中的某块区域,存的时候根据该地址值,将value存到这个地址值映射的内存区域里,取得时候从key作hash运算后得出的地址值所对应的内存区域中取出结果;
      

  5.   

    普通的查找慢是因为要一个一个比  Hash就是让把比较的次数降低  而降低的办法就是靠计算