一. 继承体系
1. Map集合的特点
- Map<K,V> : K: key, V: value
特点:
- Map集合中的元素是键值对
- Map集合的键是唯一的
- 一个键最多对应一个值
二.常用方法
1. 常用功能
(1) 增加方法
-
put(K key, V value)
(2) 删除方法
-
remove(K key) : 根据传入的键, 删除整个键值对
(3) 修改方法
-
put(K key, V value): 由于Map集合的键是唯一的, 所以如果添加了相同的键, 值会覆盖, 并且会将覆盖掉的值返回.
map.put(6, “马龙!!!”);
System.out.println(map.put(6, “张继科”)); // 马龙!!!
// 集合中的结果是 6=张继科
(4)查询功能
-
V get(K key) : 根据指定的键, 获取对应的值
// 创建Map集合 HashMap<Integer, String> map = new HashMap<>();
map.put(3, “科比”); map.put(4, “詹姆斯”); map.put(5, “乔丹”); map.put(1, “贾巴尔”); map.put(2, “马龙”);
System.out.println(map.get(1)); // 贾巴尔
2. 其他功能
-
size(): 获取集合中键值对的个数
int size = map.size(); System.out.println(size); // 5
-
containsKey(K key): 判断是否包含指定的键
System.out.println(map.containsKey(3)); // true System.out.println(map.containsKey(6)); // false
-
containsValue(V value): 判断是否包含指定的值
System.out.println(map.containsValue(“麦迪”)); // false System.out.println(map.containsValue(“科比”)); // true
-
Collection
values() : 获取存放所有值的集合 HashMap<Integer, String> map = new HashMap<>();
map.put(3, “科比”); map.put(4, “詹姆斯”); map.put(5, “乔丹”); map.put(1, “贾巴尔”); map.put(2, “马龙”);
Collection
values = map.values(); System.out.println(values); System.out.println(map);
// ==============输出==================== [贾巴尔, 马龙, 科比, 詹姆斯, 乔丹] {1=贾巴尔, 2=马龙, 3=科比, 4=詹姆斯, 5=乔丹}
#三. 遍历
以前的集合遍历:
- list: 有索引, 可以使用普通for循环, 也可以使用增强for循环
- Set: 没有索引, 由于是Collection的子接口所有有迭代器, 可以使用增强for循环
Map集合的遍历
- Map没有索引, 不能使用普通for; 跟Collection没有关系, 没有迭代器, 不能使用增强for循环; 不能直接遍历. 需要间接的进行遍历
1. Map集合的第一种遍历方式: 键找值
-
Set
keySet(): 获取Map集合中所有键的Set集合 } }
2. Map集合的第二种遍历方式: 键值对
- 键值对类型: Map.Entry<K, V>
- Set<Map.Entry<K, V» entrySet() : 获取Set集合, Set集合中的元素是 “键值对” 类型
- 查看”键值对” 中有什么方法
K getKey(): 获取键值对中的键 V getValue(): 获取键值对中的值
四. 其他内容
1. HashMap集合中存储自定义类型
- HashSet: 想保证元素的唯一, 需要重写hashCode(), equals()
2. LinkedHashMap
- LinkedHashSet: 元素唯一, 有序
- LinkedHashMap: 键是唯一的, 有序
3. jdk9集合添加方法
// 每一个集合接口中都有一个静态方法: of(多个元素)
牛刀小试(斗地主的牌)
package com.it._05poker;
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet;
public class Demo01_斗地主 {
public static void main(String[] args) {
// 创建Map集合, 集合的键是1~54 , 值按照扑克顺序排序
HashMap<Integer, String> map = new HashMap<>();
// 创建List集合, 元素就是map集合的键
ArrayList
![]() |
![]() |