黑马程序员技术交流社区
标题:
Map集合元素遍历的两种方式总
[打印本页]
作者:
黑马乔荣柱
时间:
2012-10-16 21:11
标题:
Map集合元素遍历的两种方式总
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);
}
}
}
作者:
梁志冰
时间:
2012-10-16 21:21
{:soso_e120:}还有第三种方法,就是通过value的值,获取key的值。
总结出来就好比key是丈夫,value是妻子
第一种方法,就是先把丈夫的值key拿出来,然后再去找妻子的值value;
第二种方法,就好比先拿到他们的结婚证(key和value的值),把它们存在set集合中,然后再通过key-value映射关系,获取相应的值;
第三种方法,就是先把妻子的值value拿出来,然后再根据妻子去找丈夫key
呵呵!这三种方法,只适用中国的“一夫一妻制”
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2