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 閱讀(747)
評論(1) 編輯 收藏 所屬分類:
10.Java