【Java语言基础】8.2 Java集合:Map集合体系

Java集合:Map集合体系

1. Map集合的概述

  • Map集合是一种双列集合,每个元素包含两个数据。
  • Map集合的每个元素的格式:key = value(键值对元素)。
  • Map集合也被称为“键值对集合”。
  • Map集合整体格式:
    • Collection集合的格式:[元素1,元素2,元素3…]
    • Map集合的完整格式:{key1=value1,key2=value2,key3=value3,…}

2. Map集合体系特点

  • Map集合的特点都是由键决定的。
  • Map集合的键是无序,不重复的,无索引的,值不做要求(可以重复)。
  • Map集合后面重复的键对应的值会覆盖前面重复的键的值。
  • Map集合的键值对都可以为null。
  • Map集合实现类特点:
    • HashMap:元素按照键是无序,不重复,无索引,值不做要求。
    • LinkedHashMap:元素按照键是有序,不重复,无索引,值不做要求。
    • TreeMap:元素按照键是排序,不重复,无索引的,值不做要求。

3. Map集合常用API

  • Map是双列集合的祖宗接口,它的功能是全部双列集合都可以继承使用的。
  • Map API如下:
方法名称说明
V put(K key,V value)添加元素
V remove(Object key)根据键删除键值对元素
void clear()移除所有的键值对元素
boolean containsKey(Object Key)判断集合是否包含指定的键
boolean containsValue(Object value)判断集合是否包含指定的值
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是几个中键值对的个数

4. Map集合的遍历

4.1 键找值

  • 先获取Map集合的全部键的Set集合
  • 遍历键的Set集合,然后通过键提取对应值
  • 键找值涉及到的API:
方法名称说明
Set<K> keySet()获取所有键的集合
V get(Object key)根据键获取值
		Set<String> keys = map.keySet();

        for (String key : keys) {
            int value = map.get(key);
            System.out.println(key + "=" + value);
        }

4.2 键值对

  • 先把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型了。
  • 遍历Set集合,然后提取键以及提取值。
  • 键值对涉及到的API:
方法名称说明
Set<Map.Entry<K,V>> entrySet()获取所有键值对对象的集合
K getKey()获得键
V getValue()获得值
		Set<Map.Entry<String, Integer>> entries = map.entrySet();

        for (Map.Entry<String, Integer> entry : entries) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key + "=" + value);
        }

4.3 Lambda表达式

  • 得益于JDK8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合方式。
  • Map结合Lambda遍历的API
方法名称说明
default void forEach(BiConsumer<? super K, ? super V> action)结合Lambda遍历Map集合
		map.forEach((k,v) -> {
			System.out.println(k + "=" + v);
		});

5. HashMap

  • HashMap是Map里面的一个实现类。特点都是由键决定的:无序、不重复、无索引。
  • HashMap跟HashSet底层原理是一摸一样的,都是哈希表结构,只是HashMap的每个元素包含两个值而已。
  • 实际上:Set系列集合的底层就是Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。

6. LinkedHashMap

  • 由键决定:有序、不重复、无索引。
  • 这里的有序指的是保证存储和取出的元素顺序一致。
  • 原理:底层数据结构依然是哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序。

7. TreeMap

  • 由键决定特性:不重复、无索引、可排序
  • 可排序:按照键数据的大小默认升序(由小到大)排序。只能对键排序。
  • 注意:TreeMap集合是一定要排序的,可以默认排序,也可以将键按照指定的规则进行排序。
  • TreeMap跟TreeSet的底层原理是一样的。
  • TreeMap集合自定义排序规则有2种
    • 类实现Comparable接口,重写比较规则。
    • 集合自定义Comparator比较器对象,重写比较规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐三木Mu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值