加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

Java HashMap的工作原理

发布时间:2020-12-31 08:14:15 所属栏目:运营 来源:网络整理
导读:副标题#e# 面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,

Country other = (Country) obj;
<span class="hljs-keyword">if (name.equalsIgnoreCase((other.name)))
<span class="hljs-keyword">return <span class="hljs-keyword">true;
<span class="hljs-keyword">return <span class="hljs-keyword">false;
}

}

2. HashMapStructure.java(main class)

<span class="hljs-comment"&gt;/**
 * @author Arpit Mandliya
 */
<span class="hljs-keyword"&gt;public <span class="hljs-keyword"&gt;static <span class="hljs-built_in"&gt;void main(<span class="hljs-built_in"&gt;String[] args) {

    Country india=<span class="hljs-keyword"&gt;new Country(<span class="hljs-string"&gt;"India",<span class="hljs-number"&gt;1000);
    Country japan=<span class="hljs-keyword"&gt;new Country(<span class="hljs-string"&gt;"Japan",<span class="hljs-number"&gt;10000);

    Country france=<span class="hljs-keyword"&gt;new Country(<span class="hljs-string"&gt;"France",<span class="hljs-number"&gt;2000);
    Country russia=<span class="hljs-keyword"&gt;new Country(<span class="hljs-string"&gt;"Russia",<span class="hljs-number"&gt;20000);

    HashMap<country,<span class="hljs-built_in"&gt;string> countryCapitalMap=<span class="hljs-keyword"&gt;new HashMap<country,<span class="hljs-built_in"&gt;string>();
    countryCapitalMap.put(india,<span class="hljs-string"&gt;"Delhi");
    countryCapitalMap.put(japan,<span class="hljs-string"&gt;"Tokyo");
    countryCapitalMap.put(france,<span class="hljs-string"&gt;"Paris");
    countryCapitalMap.put(russia,<span class="hljs-string"&gt;"Moscow");

    Iterator<country> countryCapitalIter=countryCapitalMap.keySet().iterator();<span class="hljs-comment"&gt;//put debug point at this line
    <span class="hljs-keyword"&gt;while(countryCapitalIter.hasNext())
    {
        Country countryObj=countryCapitalIter.next();
        <span class="hljs-built_in"&gt;String capital=countryCapitalMap.get(countryObj);
        System.out.println(countryObj.getName()+<span class="hljs-string"&gt;"----"+capital);
        }
    }

}

现在,在第23行设置一个断点,在项目上右击->调试运行(debug as)->java应用(java application)。程序会停在23行,然后在countryCapitalMap上右击,选择“查看”(watch)。将会看到如下的结构:

Java HashMap的工作原理

从上图可以观察到以下几点:

1. 有一个叫做table大小是16的Entry数组。

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!