Map集合要遍历集合中的元素,不能使用迭代器。
第一种遍历方式 keySet方法得到所有的key的Set集合,在通过get方法,通过key值得到对应的value的值.
第二种遍历方式 entrySet方法得到Set集合,这个集合中存储的是key-value的映射对象 Map.Entry类型.
在通过遍历Set集合得到每一个Map.Entry对象,通过Map.Entry对象的getKey,getValue方法
得到所有的key与value;
import java.util.*;
class Demo
{
public static void main(String[] args)
{
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(123,"abc");
map.put(423,"akc");
map.put(163,"obc");
/*
//第一种方式
//1.得到所有的key的Set集合
Set<Integer> keys=map.keySet();
//2.对这个Set集合进行遍历,得到Map集合中的所有的key值
for(Iterator<Integer> it=keys.iterator();it.hasNext();){
int key=it.next();
//3.通过key得到对应的value
String value=map.get(key);
System.out.println("KEY:"+key+" VALUE:"+value);
}
*/
//第二种方式
//1.得到Map集合中的key-value映射关系 Map.Entiry类型
Set<Map.Entry<Integer,String>> set=map.entrySet();
//Map.Entry这个就是Map接口中定义的一个静态的内部接口Entry接口。
//2.遍历Set集合将集合中的所有有key-value的映射关系得到
for(Iterator<Map.Entry<Integer,String>> it=set.iterator();it.hasNext();){
Map.Entry<Integer,String> kv=it.next();
//3.通过Map.Entry这个接口中提供的方法 getKey getValue得到Map集合中的元素
int key=kv.getKey();
String value=kv.getValue();
System.out.println("KEY:"+key+" VALUE:"+value);
}
}
}
|