今日总结
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 是集合的工具类,里面提供了很多方便对集合进行操作的方法