微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【Java -- Map】

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

原文地址:https://www.jb51.cc/wenti/3284348.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐