一、是什么?
- 接口Map是一个以键值对存取的容器。Map< key , value >k代表key键,V代表value值。
- 是一个接口,所以使用的时候要用他的实现类,常用的有HashMap,Hashtable,LinkedHashMap等。所有的接口和实现类如下图:
二、常用接口。
Map的所有接口如下图:打开eclipse看Map的实现类就可以在outline窗口看到所有的实现接口。箭头是基础最常用的几个接口。
- keyset()是获取所有的key
- values()是获取所有的值
- entrySet(K,V)是将Map中键值对以entry对象存放到set集合中。
三、Map集合中遍历
A:Map集合遍历方式keySet方法
1.获取Map集合中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键
2.遍历键的Set集合,得到每一个键
3.根据键利用get(key)去Map找所对应的值
public class Demo1 {
public static void main(String[] args) {
System.out.println("=======================1");
/*
* 1. 调用map集合的方法keySet,所有的键存储到Set集合中
* 2. 遍历Set集合,获取出Set集合中的所有元素 (Map中的键)
* 3. 调用map集合方法get,通过键获取到值
*/
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a", 11);
map.put("b", 12);
map.put("c", 13);
map.put("d", 14);
//1. 调用map集合的方法keySet,所有的键存储到Set集合中
Set<String> set = map.keySet();
//2. 遍历Set集合,获取出Set集合中的所有元素 (Map中的键)
Iterator<String> it = set.iterator();
while(it.hasNext()){
//it.next返回是Set集合元素,也就是Map中的键
//3. 调用map集合方法get,通过键获取到值
String key = it.next();
Integer value = map.get(key);
System.out.println(key+"...."+value);
}
System.out.println("=======================2");
for(String key : map.keySet()){
Integer value = map.get(key);
System.out.println(key+"...."+value);
}
System.out.println("=======================3");
Demo1.ergodicMap(map.entrySet());
}
public static void ergodicMap(Set<Entry<String, Integer>> entry){
for(Entry<String, Integer> e: entry){
System.out.println(e.getKey()+"...."+e.getValue());
}
}
}