前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java集合框架-HashMap(一)

java集合框架-HashMap(一)

原创
作者头像
玖叁叁
发布2023-05-07 13:46:45
1510
发布2023-05-07 13:46:45
举报
文章被收录于专栏:玖叁叁

HashMap 的实现原理

HashMap 使用哈希表来存储数据,它的内部实现方式是一个数组加链表的结构。当我们将键值对存储到 HashMap 中时,它会首先根据 key 的哈希值来确定该键值对在数组中的位置。如果该位置上已经存在了其他的键值对,它会将该键值对加入到该位置上的链表中。如果该位置上没有键值对,它会直接将键值对存储在该位置上。在进行查找时,HashMap 也是根据 key 的哈希值来确定该键值对在数组中的位置,并且通过链表遍历来找到该键值对。

HashMap 的哈希算法是在 JDK 中实现的,其具体实现方式是将 key 的哈希值进行异或运算后再乘以一个常数,这个常数是为了让哈希值分布更加均匀。在存储数据时,HashMap 会根据 key 的哈希值计算出数组中的位置,然后将键值对存储在该位置上。如果该位置上已经存在了键值对,它会将新的键值对插入到链表的头部,这样就可以保证在查找时,先查找到最新的键值对。

HashMap 的使用方法

HashMap 的使用方法非常简单,我们只需要创建一个 HashMap 对象,然后使用 put() 方法来存储键值对,使用 get() 方法来查找键值对即可。

下面是一个示例代码:

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Map;

public class HashMapDemo {
    public static void main(String[] args) {
        Map<String, String> hashMap = new HashMap<>();
        hashMap.put("key1", "value1");
        hashMap.put("key2", "value2");
        hashMap.put("key3", "value3");
        
        System.out.println(hashMap.get("key1"));  // 输出 value1
        System.out.println(hashMap.get("key2"));  // 输出 value2
        System.out.println(hashMap.get("key3"));  // 输出 value3
    }
}

在上面的代码中,我们首先创建了一个 HashMap 对象,然后使用 put() 方法将三个键值对存储到该对象中。最后,我们使用 get() 方法来查找该 HashMap 对象中的键值对。

HashMap 的常用 API

HashMap 的常用 API 如下:

  • put(K key, V value):将键值对存储到 HashMap 中;
  • get(Object key):根据键来查找键值对;
  • remove(Object key):根据键来删除键值对;
  • clear():清空 HashMap 中的所有键值对;
  • size():返回 HashMap 中键值对的个数;
  • containsKey(Object key):判断 HashMap 中是否包含指定的键;
  • containsValue(Object value):判断 HashMap 中是否包含指定的值;
  • isEmpty():判断 HashMap 是否为空;
  • keySet():返回 HashMap 中所有键的集合;
  • values():返回 HashMap 中所有值的集合;
  • entrySet():返回 HashMap 中所有键值对的集合。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HashMap 的实现原理
  • HashMap 的使用方法
  • HashMap 的常用 API
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档