首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Map集合的不同形式遍历

2012-10-06 
Map集合的不同方式遍历Map是一种以键值对的形式存在的集合,其中每个键映射到一个值,几乎所有通用 Map 都使

Map集合的不同方式遍历

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>

热点排行