Map接口
1.存放key-value数据
key:不能重复 底层实现使用Set
value:可以重复 底层实现使用Collection
2.实现类
①.HashMap:主要实现类
②.LinkedHashMap:使用链表的方式维护添加Map元素的顺序
③.TreeMap
④.Hashtable:线程安全的,不建议使用
子类Properties:通常用来处理属性文件,键和值都是 String类型
3.常用方法
-
Object put(Object key,Object value):添加元素|修改
-
Object remove(Object key):移除元素 删除一个key-value
-
void putAll(Map t):添加集合
-
void clear():清空集合
-
Object get(Object key):获取指定value值,若没有找到对应的key则返回null
-
boolean containsKey(Object key) :判断是否包含某个key值
-
boolean containsValue(Object value) :判断是否包含某个value值
-
int size():获取元素个数
-
boolean isEmpty()
-
boolean equals(Object obj)
-
Set keySet():获取所有key的集合返回的是Set
-
Collection values()
-
Set entrySet():获取所有的Entry(key-value)对应的set集合
-
values():获取所有的value集合返回的是Collection
Map的遍历
1.Map中的key是使用Set存放,不可重复
2.Map中的value使用Collection来存放,可以重复
3.一个key-value,是一个Entry,Entry使用Set来存放,也是不可重复
4.在向Map中添加元素时,会调用key所在类的equals()方法,判断两个key是否相同,如果相同,添加的是后面的元素
5.遍历Map集合的常用方法 Set keySet() Collection values() Set entrySet()
// 1.遍历key的集合
Set set = map.keySet();
for (Object object : set) {
System.out.println(object);
}
// 2.遍历value的集合
Collection values = map.values();
Iterator iterator = values.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
System.out.println(object);
}
// 3.遍历key-value对
// 方式一
Set set1 = map.keySet();
for (Object obj : set1) {
Object key = obj;
Object value = map.get(obj);
// System.out.println("key:"+key+"- value:"+value);
System.out.println("key:" + obj + "- value:" + map.get(obj));
}
// 方式二
Set set2 = map.entrySet();
for (Object object : set2) {
Map.Entry entry = (Entry) object;
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + ":" + value);
}