`
star65225692
  • 浏览: 273323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

java数据结构Hash算法

阅读更多

Hash算法

HashMap使用Hash算法,所以在解剖HashMap之间,需要先简单的了解Hash算法,Hash算法一般也成为散列算法,通过散列算法将任意的值转化成固定的长度输出,该输出就是散列值,这是一种压缩映射,也就是,散列值的空间远远小于输入的值空间。
简单的说,hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等里面存取数据。5.5亿年前氧浓度升高推动动物的进化

下面我们建立一个HashMap,然后往里面放入12对key-value,这个HashMap的默认数组长度为16,我们的key分别存放在该数组的格子中,每个格子下面存放的元素又是以链表的方式存放元素。

     public   static   void  main(String[] args) {
        Map map 
=   new  HashMap();
        map.put(
" What " " chenyz " );
        map.put(
" You " " chenyz " );
        map.put(
" Don't " " chenyz " );
        map.put(
" Know " " chenyz " );
        map.put(
" About " " chenyz " );
        map.put(
" Geo " " chenyz " );
        map.put(
" APIs " " chenyz " );
        map.put(
" Can't " " chenyz " );
        map.put(
" Hurt " " chenyz " );
        map.put(
" you " " chenyz " );
        map.put(
" google " " chenyz " );
        map.put(
" map " " chenyz " );
        map.put(
" hello " " chenyz " );
    }


当我们新添加一个元素时,首先我们通过Hash算法计算出这个元素的Hash值的hashcode,通过这个hashcode的值,我们就可以计算出这个 新元素应该存放在这个hash表的哪个格子里面,如果这个格子中已经存在元素,那么就把新的元素加入到已经存在格子元素的链表中。

运行上面的程序,我们对HashMap源码进行一点修改,打印出每个key对象的hash值

What-->hash值:8
You-->hash值:3
Don't-->hash值:7
Know-->hash值:13
About-->hash值:11
Geo-->hash值:12
APIs-->hash值:1
Can't-->hash值:7
Hurt-->hash值:1
you-->hash值:10
google-->hash值:3
map-->hash值:8
hello-->hash值:0

计算出来的Hash值分别代表该key应该存放在Hash表中对应数字的格子中,如果该格子已经有元素存在,那么该key就以链表的方式依次放入格子中

分享到:
评论
1 楼 liuxuejin 2011-03-08  
太简单了!

相关推荐

    Java数据结构和算法中文第二版

    根据提供的信息,“Java数据结构和算法中文第二版”这本书主要关注的是数据结构与算法的相关内容。下面将基于这些信息,详细介绍数据结构与算法的核心概念、重要性和应用领域,以及在Java编程环境中如何实现这些概念...

    java数据结构和算法学习笔记

    ### Java数据结构与算法学习笔记知识点总结 #### 一、数据结构概述 数据结构是对数据的一种组织形式,它决定了数据的存储方式以及处理数据的方法。常见的数据结构包括但不限于数组、链表、栈、队列、二叉树、图等...

    Java数据结构与算法书中源码

    针对提供的文件列表,我们可以深入探讨以下几个Java数据结构与算法的知识点: 1. **字典树(Trie)** - 尽管未直接提供字典树的源码,但`SuffixArray.java`可能涉及到了字典树的概念。字典树是一种用于快速查找字符...

    数据结构与算法分析 java语言描述第三版 源代码

    《数据结构与算法分析——Java语言描述》第三版是一本深入探讨数据结构和算法的经典教材。这本书通过使用Java编程语言,向读者展示了如何设计、实现和分析一系列关键的数据结构和算法,以解决实际问题。书中的源代码...

    java数据结构与算法视频

    根据提供的文件信息,“Java数据结构与算法视频”,我们可以推断出该视频主要讲解了使用Java语言实现各种数据结构和算法的基础知识与应用技巧。接下来,我们将深入探讨与这些主题相关的关键知识点。 ### 数据结构 ...

    java数据结构和算法

    Java数据结构和算法是计算机科学中的核心概念,对于任何Java开发者来说,理解并熟练运用它们至关重要。数据结构是组织和管理数据的方式,而算法则是解决问题的步骤或计算过程。掌握这些概念能帮助开发者编写出更高效...

    数据结构与算法分析(Java英文版)

    ### 数据结构与算法分析(Java英文版)知识点详解 #### 一、概述 《数据结构与算法分析(Java英文版)》是一本介绍如何利用Java语言处理实际问题中的数据结构和算法的专业书籍。本书由Robert Lafore编写,通过丰富...

Global site tag (gtag.js) - Google Analytics