package Map_;/*
* @author Hong Chong Xiang
* @date 2021/10/9 14:01
*/
import java.util.*;
@SuppressWarnings({"all"})
public class MapMethod {
public static void main(String[] args) {
Map<String,String> map = new HashMap();
map.put("no1","xhc");
map.put("no2","xhc");
map.put("no3","xhc1");
//遍历的第一组,首先取出所有的key,再通过所有的key取出value
Set KeySet = map.keySet();
//for增强
for (Object o : KeySet) {
System.out.println(map.get(o));
}
//迭代器
Iterator iterator = KeySet.iterator();
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println("key="+next+" valu="+map.get(next));
}
//第二组
Collection<String> collection = map.values();
collection.forEach(index->{
System.out.println(index);
});
//增强for循环
for (String s : collection) {
System.out.println(s);
}
System.out.println("==================");
Iterator iterator1 = collection.iterator();
while (iterator1.hasNext()) {
Object next = iterator1.next();
System.out.println(next);
}
//第三组 通过entrySet方式来获取
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key ="+entry.getKey()+
" value="+entry.getValue());
}
}
}
解释:
第一组:
map.keySet()获取一个包含全部key的set集合,这时候我们就可以使用遍历Collection集合的方式遍历key再根据map.get()方法获取value
第二组:
map.value()直接获取value的一个set集合。再使用三种方式遍历内容
第三组:
通过map.entrySet()的方式获取内容
entrySet里面存放的是k-v的地址,这些地址被封装成entry<>对象,entry里面有获取k-v的方法 getvalue和getkey方法,实际上这里的entry<>标准的写法是Map.Entry<>上面在使用for增强的时候实现了一个对象的向下转型,是把object转换成HashMap$Node类型,又因为HashMap$Node继承了Map.Entry<>。