Java HashMap的原理及遍历

2019-05-19 走过路过 3462 0

    HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算 key-value的存储位置,我们总是可以通过key快速地存、取value。

    主要的基础数据结构就两种,一种是数组,插入慢,索引快,一种是链表,插入快,索引慢。HashMap底层维护一个数组table, 数组中的每一项是一个key,value形式的Entry,Entry就是链表结构,所以HashMap是中和两种,取到插入数据和索引数据性能的平衡。

    存储结构如下:

   

    三种遍历方式如下:

第一种
 
  for (String key : map.keySet()) {
      System.out.println("key: " + key + ", value: " + map.get(key));
  }
第二种
 
  for (Map.Entry<String, String> entry : map.entrySet()) {
      System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
  }
第三种
 
  for (String value : map.values()) {
      System.out.println("value: " + value);
  }

相关推荐
全部评论 最新评论 最早评论
还没有用户评论

联系我们

微信公众号
打赏作者