黑马程序员技术交流社区

标题: 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