Java基础进阶_day08_(Map集合,可变参数)
1. Map集合
Map集合:将键映射到值的对象.Map集合是双列集合的顶层接口.
# Map集合特点:
* A:一个映射不能包含重复的键(相当于是Collection集合的Set集合);
* B:每个键最多只能映射到一个值;
* C:值可以重复(相当于是Collection集合的List集合).
Map集合与Collection集合的区别:
# Map集合存储的元素是成对出现的,其中键是唯一的,值是可以重复的;
# Collection集合存储的元素是单独出现的,其子接口List集合存储的是元素是可重复的,子接口Set集合存储的元素是唯一的.
集合中的数据结构:
# Map集合的底层数据结构是针对键有效的,对值无效;
# Collection集合的底层数据结构是针对存储的元素有效.
Map集合功能概述:
添加功能:
V put(K key,V value):将指定的键映射到值,返回被替换的值;
获取功能:
Set<Map.Entry<K,V>> entrySet():获取集合键值对的集合;
V get(Object key):获取指定键对应的值,没有则返回null;
Set<K> keySet():返回该集合的键集合;
Collection<V> values():返回该集合的值的集合;
删除功能:
void clear():删除集合中所有的键值对;
V remove(Object key):删除指定键对应的值,并将删除的值返回(key不返回),没有返回null;
判断功能:
boolean containsKey(Object key):判断集合中是否包含指定键;
boolean containsValue(Object value):判断集合中是否包含指定的值;
boolean isEmpty():判断集合是否为空;
长度功能:
int size():返回集合中键值对的对数.
Map集合的遍历方式:
# 方式1:通过keySet()方法获取Map的键的Set集合,通过遍历key的集合(get()方法)获取key对应的value值.
# 方式2:先获取Map集合的键值对对象的集合,通过遍历获取的集合获取每一个键值对对象,获取键值对对象的键和值.
案例:
public class MyMapDemo {
public static void main(String[] args) {
//创建集合对象
Map<Integer, String> m = new HashMap<Integer, String>();
// V put(K key,V value)
System.out.println(m.put(1, "郭靖"));
m.put(2, "黄蓉");
System.out.println(m);
// V get(Object key)
System.out.println(m.get(1));
System.out.println(m.get(2));
// Set<K> keySet():
Set<Integer> keySet = m.keySet();
for (Integer integer : keySet) {
System.out.println(integer);
}
// Collection<V> values()
Collection<String> values = m.values();
for (String string : values) {
System.out.println(string);
}
// void clear()
// m.clear();
// System.out.println(m);
// V remove(Object key)
System.out.println(m.remove(1));
System.out.println(m.remove(3));
// boolean containsKey(Object key)
System.out.println(m);
System.out.println(m.containsKey(1));
// boolean containsValue(Object value)
System.out.println(m.containsValue("郭靖"));
// boolean isEmpty()
System.out.println(m.isEmpty());
// int size()
System.out.println(m.size());
// 遍历集合,方式1