【Java -- Map】

本文详细介绍了Java Map接口及其常用方法,包括put(), remove(), clear(), keySet(), values(), 和 entrySet()。对比了HashMap的无序特性与TreeMap的有序特性,并演示了如何通过keySet()和entrySet()遍历键值对。
摘要由CSDN通过智能技术生成

Map 概述

Map 接口是双列集合的顶层接口是一种由键-值对组成的集合,Map 中每个元素都包含一个键对象和一个值对象,键和值之间存在者映射关系,每个键最多映射一个值。Map 中不允许出现重复的键,但可以出现重复的值。若向 Map 中添加重复键,新的值将会覆盖之前值。Map 体系框架如下:

Map 体系框架

Map 常用方法

V put(K key, V value)					将指定值与指定键关联(向 Map 对象中添加键对元素)

V remove(Object key)					根据键删除指定键值对元素,并返回所删除键对的值

void clear()							清空集合,清除所有键值对元素

boolean containsKey(Object key)			判断集合是否包含指定的键

boolean containsValue(Object value)		判断集合是否包含指定的值

boolean isEmpty()						判断集合是否为空‘

int size()								返回集合的长度,也即元素个数

V get(Object key)						根据键获取值,若没有该键,返回 null

Set<K> keySet()							获取所有键的集合(因为键唯一,所以返回 Set)

Collection<V> values()					获取所有值的集合(值不要求唯一,所以返回 Collection)

Set<Map.Entry<K, V>> entrySet()			获取所有键值对的集合

HashMap & TreeMap

HashMap 类继承自 AbstractMap 类并实现 Map 接口。HashMap 是元素的无序集合(存储与输出顺序不一致),不允许键重复。每个 HashMap 集合对象允许最多一个键为 null。
TreeMap 类继承自 AbstractMap 类并间接实现 Map 接口(直接实现 NavigableMap 接口)。类似于 TreeSet,TreeMap 也会以一定规则对元素进行排序(自然排序/定制排序),具体排序方式取决于构造器。

Map 的遍历

利用 keySet() & get() 方法

利用 keySet() 获取键的集合,遍历键的集合,用 get() 方法获取对应的值。

public class MapDemo {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("ID001", "Aloys");
        map.put("ID002", "Zoey");
        map.put("ID003", "Jack");
        map.put("ID004", "Rose");

        Set<String> set = map.keySet();
        for(String s: set) {
            System.out.println(s + "=" + map.get(s));
        }
    }
}

运行结果:

ID001=Aloys
ID002=Zoey
ID003=Jack
ID004=Rose

利用 entrySet() 方法

public class MapDemo {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("ID001", "Aloys");
        map.put("ID002", "Zoey");
        map.put("ID003", "Jack");
        map.put("ID004", "Rose");
 
        Set<Map.Entry<String, String>> set = map.entrySet();
        for(Map.Entry<String, String> entry: set) {
            System.out.println(entry.getKey() + "=" + entry.getValue());
        }
    }
}

运行结果:

ID001=Aloys
ID002=Zoey
ID003=Jack
ID004=Rose
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值