Java 之 HashMap

 

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值来存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即它不会记录插入的顺序。HashMap 继承于 AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

HashMap 中的 key 与 value 可以是相同类型的,也可以是不同类型的,如 String 类型的 key 和 String 类型的 value,或者 Integer 类型的 key 和 String 类型的 value,在 HashMap 中都是被允许的。

添加元素

可以使用 put() 方法来为 HashMap 添加键值对

访问元素

可以使用 get(key) 方法来获取 key 值对应的 value

删除元素

可以使用 remove(key) 方法来删除 key 值对应的键值对,或使用 clear() 方法来清空 HashMap

计算大小

可以使用 size() 方法来计算 HashMap 中的元素数量

遍历 HashMap

可使用 for-each 循环来迭代 HashMap 中的元素,如果单纯只想拿到 key 值的话,可以使用 keySet() 方法,然后通过 get(key) 获取对应的 value,如果只想获取 value,便可以使用 values() 方法

import java.util.HashMap;

public class HashMapDemo {
    
    public static void main(String[] args) {
        //创建 HashMap 对象 map
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        //使用 put() 方法添加元素
        map.put(1,"A");
        map.put(2,"B");
        map.put(3,"C");
        map.put(4,"D");
        System.out.println("map = " + map);
        //使用 size() 方法获得 map 中元素数量
        int size = map.size();
        System.out.println("该 HashMap 中有" + size + "个元素");
        //for-each 循环遍历 map
        System.out.println("该 HashMap 中的元素为:");
        for (Integer i : map.keySet()) {
            System.out.println("key: " + i + " value: " + map.get(i));
        }
        // 返回所有 value 值
        System.out.println("该 HashMap 中的 value 值为:");
        for(String value: map.values()) {
            // 输出每一个value
            System.out.print(value + " ");
        }
        System.out.println();
        //删除元素
        map.remove(3);
        System.out.println("删除键值为3的元素之后,map = " + map);
        //清除 HashMap
        map.clear();
        System.out.println("map已被清空,map = " + map);
        
    }
}

HashMap 常用方法
方法说明
clear()删除 HashMap 中所有的键值对,即清空 HashMap
clone()

复制一份 HashMap

isEmpty()判断 HashMap 是否为空
size() 计算 HashMap 中键值对的数量
put()为 HashMap 添加键值对
putAll()将所有键值对添加到 HashMap 中
putIfAbsent()如果 HashMap 中不存在指定的键,则将指定的键值对插入到 HashMap 中
remove()删除 HashMap 中指定 key 的映射关系
containsKey()检查 HashMap 中是否存在指定的 key 对应的映射关系
containsValue()检查 HashMap 中是否存在指定的 value 对应的映射关系
replace()替换 HashMap 中指定的 key 对应的 value
replaceAll()将 HashMap 中的所有映射关系替换成给定的函数所执行的结果
get()获取指定 key 对应的 value
getOrDefault()获取指定 key 对应的 value,如果找不到 key,则返回设置的默认值
forEach()对 HashMap 中每个映射执行指定的操作
entrySet()返回 HashMap 中所有映射项的集合视图
keySet()返回 HashMap 中所有 key 组成的集合视图
values()返回 HashMap 中存在的所有的 value 值
merge()添加键值到 HashMap 中
compute()对 HashMap 中指定 key 的值进行重新计算
computeIfAbsent()对 HashMap 中指定 key 的值进行重新计算,如果不存在这个 key 值,则添加到 HashMap 中
computeIfPresent()

对 HashMap 中指定 key 的值进行重新计算,前提是该 key 值存在于 HashMap 中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值