散列图以及它如何在幕后工作 [英] Hashmap and how this works behind the scene

查看:120
本文介绍了散列图以及它如何在幕后工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



下面是一个代码示例:

  // String key = new String(key); 
// String val = new String(value);
String key =key;
String val =value;

HashMap map = new HashMap();
map.put(key,val);

System.out.println(hashmap object created,its key hashcode =+ key.hashCode());
//哈希码是106079
System.out.println(key =+ map.get(key))的hashmap对象值;

//让我们使用具有相同散列码的密钥进行存储
整数intkey = new Integer(106079);
val =value2;
map.put(intkey,val);
System.out.println(hashmap object created。It intkey hashcode =+ intkey.hashCode());
//这将再次返回106079。因此,key和intkey具有相同的散列码

//让我们来获取值
System.out.println(intkey =+ map.get(intkey)的hashmap对象值);
System.out.println(key =+ map.get(key))的hashmap对象值;

返回值与预期一致。我在后面看到,HashMap的工作原理如下:
$ b


  1. 获取键/值。
  2. 从密钥中创建一个哈希码。

  3. $ b $


    1. 将其存储在同一个存储区中,但是与这是一个LinkedList,我想它将它存储在下一个可用分配中。

    获取它:


    1. 拿起钥匙,获得散列码,
    2. 看桶,

    3. 然后查看LinkedList中第一个元素的键,然后检查key是否传递和key匹配,如果不是则继续下一步,依此类推直到值可以检索。

    我正确理解这个概念吗?非常感谢!

    编辑:

    非常感谢,所以完成:
    - Java HashMap如何在内部存储条目
    - Java HashMap如何处理具有相同哈希代码的不同对象?



    和:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆