当前位置:   article > 正文

Java Map接口 - HashMap类

Java Map接口 - HashMap类

HashMap 是 Java 集合框架中的一个核心类,它实现了 Map 接口。HashMap 存储键值对(key-value pairs)并允许你使用键来检索值。与 TreeMap 不同,HashMap 不保证映射的顺序,特别是它不保证顺序会随着时间的推移而保持不变。

以下是关于 HashMap 类的一些关键点:

  1. 性能HashMap 基于哈希表实现,提供了几乎常量的时间复杂度来执行 getput 操作(假设哈希函数是均匀的,并且表有足够的容量)。

  2. 非同步HashMap 不是线程安全的。如果你打算在多线程环境中使用它,你需要额外的同步措施,或者可以考虑使用 Collections.synchronizedMap() 方法来包装它,或者使用 ConcurrentHashMap 类。

  3. 容量和负载因子HashMap 有一个初始容量(默认为 16)和一个负载因子(默认为 0.75)。当哈希表中的条目数超过容量与负载因子的乘积时,哈希表会重新调整大小(rehash)。

  4. 键的唯一性:在 HashMap 中,键(key)必须是唯一的,并且不能为 null(但在 Java 8 及更高版本中,HashMap 允许一个 null 键)。值(value)可以是重复的,并且可以为 null

  5. 遍历HashMap 提供了多种方法来遍历它的键、值或键值对,如 keySet()values()entrySet() 方法。

  6. 迭代顺序:从 Java 1.8 开始,HashMap 在迭代时遵循键的插入顺序(但这并不意味着 HashMap 是有序的或保证顺序的稳定性)。如果在迭代期间对映射进行了修改(结构修改,如添加或删除元素),则迭代可能会抛出 ConcurrentModificationException

下面是一个简单的示例,展示了如何使用 HashMap 类:

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        // 创建一个HashMap实例
        HashMap<String, Integer> hashMap = new HashMap<>();

        // 添加元素
        hashMap.put("One", 1);
        hashMap.put("Two", 2);
        hashMap.put("Three", 3);

        // 检索元素
        Integer value = hashMap.get("Two");
        System.out.println("Value for 'Two': " + value);

        // 遍历HashMap
        for (Map.Entry<String, Integer> entry : hashMap.entrySet()) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }

        // 移除元素
        hashMap.remove("One");

        // 检查元素是否存在
        boolean containsKey = hashMap.containsKey("One");
        System.out.println("'One' exists in the map: " + containsKey);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

在上面的示例中,我们创建了一个 HashMap 实例,并添加、检索、遍历和删除了几个键值对。还展示了如何使用 containsKey 方法来检查某个键是否存在于映射中。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/680561
推荐阅读
相关标签
  

闽ICP备14008679号