一. Map<K,V>接口
接口 Map<K,V>
类型参数:
K - 此映射所维护的键的类型
V - 映射值的类型
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
组成结构:键(key),值(value)
对应关系:一一对应
结构特性:键不可以重复,值允许重复
遍历方式:键集、值集、通过键值的映射关系去遍历Map
Map最大的优点:体现了对应关系
Map和Collection的区别:
Map:键值对,键不能重复
Collection:存储单独的对象,存储的元素能否重复根据具体的实现类来确定
注意:Map集合中的具体实现类的数据结构,是针对键有效
1.成员方法:
(1)添加
V put(K key,V value):当key在集合中不存在时,添加元
素;当key存在,替换元素
void putAll(Map m):从指定Map集合中将所有键值对复制到当前集
合中
(2)删除
void clear():清除所有键值对数据(太暴力了,不建议用)
V remove(Object key):根据指定的键删除键值对
(3)判断
boolean containsKey(Object key):判断指定键在集合中是否存在
boolean containsValue(Object value):判断指定值在是否存在
boolean isEmpty():判断集合是否为空
(4)获取
Set<Map.Entry<K,V>> entrySet():返回键值对对象的集合
Object get(Object key):根据键获取值
Set<K> keySet():返回所有键的集合
Collection<V> values():返回所有值的集合
(5)长度
int size():获取长度(键值对对数)
2.代码示例
(1)基本方法的使用
public class MapDemo {
public static void main(String[] args) {
// 创建集合对象
Map<String, String> map = new HashMap<String, String>();
// 添加元素
map.put("java001", "张三");
map.put("java002", "李四");
map.put("java003", "王五");
// 输出集合
System.out.println(map);
// V put(K key,V value)
// 在添加元素的时候,如果这个键不存在,则添加,返回null
// 如果键存在,就替换,将被替换的值返回
System.out.println("put:" + map.put("java001", "张三三"));
// 添加时,键唯一,值可以不唯一
System.out.println("put:" + map.put("java004", "李四"));
// 输出添加后的集合
System.out.println("添加后的集合:" + map);
System.out.println("--------------------");
// 根据指定的键删除键值对,并返回删除的值
System.out.println("remove:" + map.remove("java001"));
// 输出删除后的集合
System.out.println("remove后的集合:" + map);
System.out.println("--------------------");
// 判断键是否存在
System.out.println("containsKey:" +
map.containsKey("java002"));
// 判断值是否存在
System.out.println("containsValue:" +
map.containsValue("李四"));
System.out.println("--------------------");
// 获取长度(键值对对数)
System.out.println("size:" + map.size());
System.out.println("--------------------");
// 遍历所有的key
Set<String> keys = map.keySet();
for (String s : keys) {
System.out.println(s);
}
System.out.println("--------------------");
// 遍历所有的值
Collection<String> values = map.values();
for (String s : values) {
System.out.println(s);
}
System.out.println("--------------------");
// 清除所有键值对数据
map.clear();
// 输出清除后的集合
System.out.println("清除后的集合:" + map);
}
}
|
|