当前位置: 代码迷 >> J2SE >> 面试被问到 怎么遍历一个map
  详细解决方案

面试被问到 怎么遍历一个map

热度:38   发布时间:2016-04-24 01:53:29.0
面试被问到 如何遍历一个map
在腾讯面试J2ee,被问到如何遍历一个map,
又不是笔试,这要怎么答啊,谁知道这个问题是在问什么,答案应该怎么答啊?

------解决方案--------------------
先获得map的keySet,然后遍历该set,以set中的每一个元素做为键去获取map中的对应值。
------解决方案--------------------
Java code
public   class   MyMap{       public   static   void   main(String[]   args){               Map   map   =   new   HashMap();               map.put( "1 ", "2 ");               map.put( "2 ", "3 ");               Set   set   =   map.entrySet();               Iterator   i   =   set.Iterator();               while(i.hasNext){                     System.out.println(i.next);               }       } }
------解决方案--------------------
嗯 ,是有两种方法,但感觉到使用entryset好一些~
------解决方案--------------------
j2ee应该是在jsp页面来遍历吧。而不是直接使用纯java代码。使用纯java代码问这个问题的话,
那把腾迅说得也太没得水准了吧
使用struts的逻辑标签来做。
<logic:iterator name="maps" scope="request" id="m">
${m.key}---${m.value}
</logic:iterator>
------解决方案--------------------
Java code
        Map<String,String> map = new HashMap<String,String>(){};        map.put("0", "0");        map.put("3", "3");        map.put("1", "1");        //第一种        Set set = map.keySet();        Iterator it = set.iterator();        while(it.hasNext()){            String str = it.next().toString();            System.out.println("1--"+str+"--"+map.get(str));        }        //第二种        Set<Entry<String,String>> entryset = map.entrySet();        Iterator iter = entryset.iterator();        while(iter.hasNext()){            Entry<String,String> entry = (Entry<String,String>)iter.next();            System.out.println("2--"+entry.getKey()+"--"+entry.getValue());        }        //第三种        for(Entry<String,String> entry : map.entrySet()){            System.out.println("3--"+entry.getKey()+"--"+entry.getValue());        }        //后两种基本原理一样
------解决方案--------------------
建议entrySet(),上次在代码里用entrySet(),被人说很奇怪,妈的,怀疑他懂不懂java

  相关解决方案