一、Map集合概述和使用
1.Map集合概述
- Interface Map<K,V> K:键的类型;V:值的类型
- 将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值
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() | 集合的长度,也就是集合中键值对的个数 |
3.Map集合的获取功能
方法名 | 说明 |
V get(Object key) | 根据键获取值 |
Set<K>keySet() | 获取所有键的集合 |
Collection<V>values() | 获取所有值的集合 |
Set<Map.Entry<K,V>>entrySet() | 获取所有键值对对象的集合 |
4.Map集合的遍历(方式1)
我们存储的元素是成对出现的,所以我们把Map看成是一个夫妻对的集合
遍历思路
- 把所有的丈夫集合起来
- 遍历丈夫的集合,获取每一个丈夫
- 根据丈夫去找对应的妻子
转换为Map集合的操作:
- 获取所有键的集合。用keySet()方法实现
- 遍历键的集合,获取到每一个键。用增强for实现
5.Map集合的遍历(方式2)
我们储存的元素都是成对出现的,所以我们把Map看成是一个夫妻的集合遍历思路
- 获取所有结婚证的集合
- 遍历结婚证的集合,得到每一个结婚证
- 根据结婚证获取丈夫和妻子
转换位Map集合中的操作
- 获取键值对对象的集合Set<Map.Entry<K,V>>entrySet();获取所有键值对对象的集合
- 遍历键值对对象的集合,得到每一个键值对对象用增强for实现,得到每一个Map.Entry
- 根据键值对对象获取键和值,用getKey()得到键,用getValue()得到值。
测试代码
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
HashMap<String, String> map = new HashMap<>();
//添加元素
map.put("张无忌","赵敏");
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
//获取所有键值对对象的集合
Set<Map.Entry<String,String>> entrySet = map.entrySet();
//遍历键值对对象的集合,得到每一个键值对对象
for (Map.Entry<String,String>me:entrySet){
//根据键值对对象获取键和值
String key = me.getKey();
String value = me.getValue();
System.out.println(key+","+value);
}
}
}
二、Collections概述和使用
1.Collections概述和使用
- 是针对集合操作的工具类
2.Collection类的常用方法
- public static<T extends Compareble<?superT>>void sort(List<T>list);将指定的列表按照升序排序
- public static void reverse(List<>list);反转指定列表中元素的顺序
- public static void shuffle(List<?>list);使用默认的随机源随机排列指定列表