隨筆-199  評論-203  文章-11  trackbacks-0
              Map是一種以鍵值對的形式存在的集合,其中每個鍵映射到一個值,幾乎所有通用 Map 都使用哈希映射。位于java.util包中。其子類有HashMap,TreeMap。HashMap缺省的情況下是線程非安全的;當多線程訪問時可能需要提供同步機制,key和value的值允許為null,鍵值允許重復,沒有順序。

           

                    普通JAVA類遍歷Map集合

                    Map map=new HashMap();

          map.put("a", "1");

            map.put("b", "2");

          map.put("c", "3");

          map.keySet();//鍵集合

          map.values();//值集合

          map.entrySet();//鍵值集合

          //遍歷鍵,通過鍵取值

          Set set = map.keySet();

          for (Object key : set) {

          System.out.println("鍵:"+key+"  值:"+map.get(key));

          }

          //遍歷鍵集合

          Iterator it=map.keySet().iterator();

          while(it.hasNext()){

          System.out.println("鍵:"+it.next());

          }

          //遍歷鍵值集合

          Iterator it2=map.entrySet().iterator();

          while(it2.hasNext()){

          System.out.println(it2.next());

          }

           

          使用EL表達式遍歷Map集合

             <%

               Map map=new HashMap();

          map.put("a", "1");

          map.put("b", "2");

          map.put("c", "3");

          pageContext.setAttribute("map",map);

               %>

               <c:forEach items="${map}" var="m">

               鍵:${m.key}

               值:${m.value}

               </c:forEach>

          使用EL表達式遍歷Map集合(值存放的是對象)

           

           <%

              Person p=new Person();

              p.setAddress("aa");

              p.setName("aa");

                  Person p2=new Person();

              p2.setAddress("bb");

              p2.setName("bb");

           

                  Person p3=new Person();

              p3.setAddress("cc");

              p3.setName("cc");

              Map map=new HashMap();

          map.put("a", p);

          map.put("b", p2);

          map.put("c", p3);

          pageContext.setAttribute("map",map);

               %>

               <c:forEach items="${map}" var="m">

               ${m.key}

               ${m.value.name} //m.value取得的是對象的內存地址,所以可以直接用m.value.name(name為Person對象的屬性)

               </c:forEach>

           

           

          使用struts標簽<logic:iterate />遍歷

           

          <%

              List list=new ArrayList();

              list.add("aa");

              list.add("bb");

              list.add("cc");

              Map map=new HashMap();

          map.put("a", list);

          pageContext.setAttribute("map",map);

               %>

           

              <logic:iterate id="m" name="map">

               鍵:${m.key}

               <logic:iterate id="childm" name="m" property="value">內層標簽的name對應的是外層標簽的id,一定要加上property="value"

               值:${childm}

               </logic:iterate>

              </logic:iterate>

          posted on 2009-11-23 09:21 Werther 閱讀(755) 評論(1)  編輯  收藏 所屬分類: 10.Java

          評論:
          # re: 不同方式遍歷Map集合 2009-12-03 12:38 | 征服者
          多學點!  回復  更多評論
            
          主站蜘蛛池模板: 汾阳市| 涪陵区| 延吉市| 安化县| 赤峰市| 浦城县| 正阳县| 和硕县| 诸暨市| 余姚市| 将乐县| 金湖县| 西华县| 鞍山市| 棋牌| 安塞县| 永顺县| 普兰店市| 吉林市| 奈曼旗| 高陵县| 建宁县| 垣曲县| 永仁县| 五寨县| 遂平县| 黄陵县| 牙克石市| 西乌| 高淳县| 凤山县| 甘泉县| 新沂市| 全椒县| 武胜县| 北碚区| 林周县| 仁寿县| 泾阳县| 黑水县| 漯河市|