今日学习内容

1 Map

​ Map 的体系结构和 Set 体系结构非常相似,Set 体系底层基本上使用都是 Map 体系

  • Set

    • HashSet

      • LinkedHashSet
    • TreeSet
  • Map

    • HashMap

      • LinkedHashMap
    • TreeMap

对于Map来说,每种集合底层也使用了数据结构,但是其数据结构只针对键有效,对值无效

1.1 Map集合概述和特点

  • Map集合概述

    interface Map<K,V>  K:键的类型;V:值的类型
  • Map集合的特点

    • 键值对映射关系,键和值是一一对应的,一个键只能对应唯一的一个值
    • Map是一个双列集合,第一列是键,第二列值值,一个键对应一个值
    • 键不能重复,如果键重复,则值覆盖,只会保留一个相同的键,值可以重复
    • 元素存取无序

1.2 Map集合的常用方法

  • 常用方法

    方法名说明
    V put(K key,V value)添加元素
    V remove(Object key)根据键删除键值对元素
    void clear()移除所有的键值对元素
    boolean containsKey(Object key)判断集合是否包含指定的键
    boolean containsValue(Object value)判断集合是否包含指定的值
    boolean isEmpty()判断集合是否为空
    int size()集合的长度,也就是集合中键值对的个

1.3 Map集合的获取功能

  • 常用方法

    方法名说明
    V get(Object key)根据键获取值
    Set keySet()获取所有键的集合
    Collection values()获取所有值的集合
    Set<Map.Entry<K,V>> entrySet()获取所有键值对对象的集合

1.4 Map集合的遍历(方式1)

  • 遍历思路
  • 1.通过keySet()方法获取所有键的集合

    • 2.遍历集合,获取每一个键,可用增强for实现
    • 3.通过get(K k)根据键找对应的值

1.5 Map集合的遍历(方式2)

  • 遍历思路

    • 1.通过entrySet()方法获取所有的键值对对象(Entry)的集合

      • Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
    • 2.遍历键值对对象的集合,得到每一个键值对对象

      • 用增强for实现,得到每一个Map.Entry
    • 3.根据键值对对象的getKey()和getValue分别获取键和值

      • 用getKey()得到键
      • 用getValue()得到值

2 Collections集合工具类

2.1 Collections概述和使用

  • Collections类的作用

    ​ 是针对集合操作的工具类

  • Collections类常用方法

    方法名说明
    public static void sort(List list)将指定的列表按升序排序
    public static void reverse(List<?> list)反转指定列表中元素的顺序
    public static void shuffle(List<?> list)使用默认的随机源随机排列指定的列表
  • Collection 和 Collections 的区别

    • Collection 是单列集合的顶层接口
    • Collections 是集合的工具类,里面提供了很多方便对集合进行操作的方法