1.1概述
现实生活中,我们常会看到这样的一种集合:
IP
地址与主机名,身份证号与个人,系统用户用与系统用户对象等,
这种一一对应的关系,就叫做
映射
。
Java
提供了专门的集合类用来存放这种对象关系的对象,即
java.util.Map
接
口。
1.2Map的常用集合
HashMap
:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的
hashCode()
方法、
equals()
方法。
LinkedHashMap
:
HashMap
下有个子类
LinkedHashMap
,存储数据采用的哈希表结构
+
链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的
hashCode()
方法、
equals()
方法。
1.3Map中常用的接口
常用方法如下:
public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。
public V remove(Object key) : 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
public Set<K> keySet() : 获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。
Map接口演示:
public class MapDemo {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("黄晓明","杨颖");
map.put("邓超","孙俪");
map.put("熊大","光头强");
map.put("熊二","小小光头强");
System.out.println(map);
//删除键值对
System.out.println(map.remove("熊二"));
System.out.println(map);
//查看该键对应的值
System.out.println(map.get("熊大"));
//获取每一个键
Set<String> keys = map.keySet();
for (String key : keys) {
//根据键 去找值
String value = map.get(key);
System.out.println(key+"**"+value);
}
}
}