集合进阶(中)
一:双列集合的特点
(1)双列集合的特点
1、双列集合一次需要存一对数据,分别为键和值
2、键不能重复,值可以重复
3、键和值是一一对应的,每一个键只能找到自己对应的值
4、键 + 值这个整体,我们称之为“键值对”或者“键值对对象”,在Java中叫做“Entry对象”
二:Map集合常用的API
(1)Map中常见的API
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() | 结合的长度,也就是集合中键值对的个数 |
public class Test1 {
public static void main(String[] args) {
// 创建Map集合
Map<String, String> map = new HashMap<String, String>();
// 添加元素
// put方法的细节:
// 添加/覆盖
// 在添加数据的时候,如果键不存在,那么直接把键值对对象添加到map集合当中,方法返回null
// 在添加数据的时候,如果键是存在的,那么会把原有的键值对对象覆盖,会把被覆盖的值进行返回
map.put("郭靖", "黄蓉");
map.put("韦小宝", "穆建平");
map.put("易志平", "小龙率");
//String value = map.put("韦小宝", "双儿");
//System.out.println(value); // 穆建平
//System.out.println(map); // {韦小宝=双儿, 易志平=小龙率, 郭靖=黄蓉}
// remove 删除
//String value = map.remove("郭靖");
//System.out.println(value); // 黄蓉
//System.out.println(map); // {韦小宝=穆建平, 易志平=小龙率}
// clear 清空
//map.clear();
//System.out.println(map); // {}
// containsKey
//boolean value1 = map.containsKey("郭靖");
//System.out.println(value1); // true
//boolean value2 = map.containsKey("郭靖2");
//System.out.println(value2); // false
// containsValue
//System.out.println(map.containsValue("瓦达")); // false
// size
//System.out.println(map.size()); // 3
// isEmpty
System.out.println(map.isEmpty()); // false
}
}
三:Map集合的第一种遍历方式(键找值)
(1)键找值
public class Test2 {
public static void main(String[] args) {
// 创建Map集合
Map<String, String> map = new HashMap<>();
// 添加元素
map.put("郭靖", "黄蓉");
map.put("韦小宝", "穆建平");
map.put("易志平", "小龙率");
Set<String> keys = map.keySet();
// 增强for
for (String key : keys) {
String value = map.get(key);
System.out.</