Java Map类

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:Java

在这里插入图片描述


👉🏻map

Map 是 Java 中的一种数据结构,用于存储键值对。它的主要特点是每个键唯一,每个键对应一个值。
每个 Map 中的元素由键(key)和值(value)组成,键是唯一的,而值可以重复。

以下是一些常见的 Map 实现和基本方法:

1. 常见的实现

  • HashMap:基于哈希表实现,允许 null 键和 null 值,查询速度快。
  • LinkedHashMap:保留插入顺序,查询速度稍慢于 HashMap
  • TreeMap:基于红黑树实现,按键的自然顺序或指定的比较器排序。

2. 主要方法

2.1. put(K key, V value)
  • 描述:将指定值与指定键关联。
2.2. get(Object key)
  • 描述:根据键获取对应的值。
2.3. remove(Object key)
  • 描述:移除指定键及其对应的值。
2.4. containsKey(Object key)
  • 描述:检查是否存在指定键。
2.5. containsValue(Object value)
  • 描述:检查是否存在指定值。
2.6. keySet()
  • 描述:返回所有键的集合。
2.7. values()
  • 描述:返回所有值的集合。
2.8. entrySet()
  • 描述:返回所有键值对的集合。

3. 示例代码

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

public class MapExample {
    public static void main(String[] args) {
        Map<String, Integer> ageMap = new HashMap<>();
        
        // 添加键值对
        ageMap.put("Alice", 30);
        ageMap.put("Bob", 25);
        
        // 获取值
        System.out.println("Alice's age: " + ageMap.get("Alice")); // 输出: 30
        
        // 移除键值对
        ageMap.remove("Bob");
        
        // 检查键是否存在
        System.out.println("Contains Bob: " + ageMap.containsKey("Bob")); // 输出: false
        
        // 打印所有键值对
        for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

👉🏻访问

如果只需要访问 Map 中的键或值,可以使用 keySet()values() 方法:

1. 访问键

使用 keySet() 方法获取所有键的集合,然后可以遍历这个集合。

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

public class AccessKeysExample {
    public static void main(String[] args) {
        Map<String, Integer> ageMap = new HashMap<>();
        ageMap.put("Alice", 30);
        ageMap.put("Bob", 25);

        // 遍历键
        for (String key : ageMap.keySet()) {
            System.out.println("Key: " + key);
        }
    }
}

2. 访问值

使用 values() 方法获取所有值的集合,然后可以遍历这个集合。

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

public class AccessValuesExample {
    public static void main(String[] args) {
        Map<String, Integer> ageMap = new HashMap<>();
        ageMap.put("Alice", 30);
        ageMap.put("Bob", 25);

        // 遍历值
        for (Integer value : ageMap.values()) {
            System.out.println("Value: " + value);
        }
    }
}

3.访问键值

如果你需要同时访问 Map 中的键和值,可以使用 entrySet() 方法。这个方法返回一个包含所有键值对的集合,你可以通过 Map.Entry 来访问每个键及其对应的值。

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

public class AccessKeysAndValuesExample {
    public static void main(String[] args) {
        Map<String, Integer> ageMap = new HashMap<>();
        ageMap.put("Alice", 30);
        ageMap.put("Bob", 25);

        // 遍历键值对
        for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("Key: " + key + ", Value: " + value);
        }
    }
}
  • entrySet() 返回一个包含所有 Map.Entry 对象的集合。
  • 每个 Map.Entry 对象都有 getKey()getValue() 方法,可以分别获取键和值。

👉🏻hashCode() 和 equals() 方法

hashCode()equals() 方法在 Java 中用于对象的相等性判断和哈希表中的存储。

  1. equals()
  • 用于比较两个对象是否相等。默认实现比较对象的引用,但通常需要重写以比较对象的内容。
  1. hashCode()
  • 返回对象的哈希码,用于在哈希表(如 HashMap)中快速查找对象。相等的对象必须具有相同的哈希码。

意义

  • 在集合类中,hashCode() 用于确定对象存储的位置,而 equals() 用于在同一位置中查找是否存在相等的对象。重写这两个方法时,必须确保:

  • 如果 equals() 返回 true,则 hashCode() 也必须相等。


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值