隨筆-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 | 征服者
          多學點!  回復  更多評論
            
          主站蜘蛛池模板: 贵德县| 中超| 济源市| 阿拉善右旗| 沿河| 宝坻区| 望谟县| 望奎县| 凯里市| 岫岩| 靖边县| 合作市| 深水埗区| 铜陵市| 嘉鱼县| 洛隆县| 云南省| 通榆县| 白沙| 阿拉尔市| 北川| 西华县| 淄博市| 武山县| 武鸣县| 灯塔市| 印江| 阜阳市| 乐山市| 太湖县| 福泉市| 北票市| 洪江市| 固安县| 鹿邑县| 神农架林区| 金山区| 安福县| 曲阜市| 荆门市| 水富县|