您的位置:首页 > 编程语言 > Java开发

Java集合的特点、定义及Map集合的遍历方式

2012-04-22 13:41 573 查看
今天碰到个map集合的遍历,发现有点生疏了,干脆又总结了发上来
1.集合的特点:(与数组的特点相反)
① 集合里面可以放置不同类型的数据;
② 长度不固定;
③ 空间地址不连续。
2.集合的定义:
从面向对象上来说,集合也是一种对象,一种特殊的对象:对象的容器,用于存放,检索,操纵和传输对象。Java提供了用于管理集合的接口和类,包括接口,实现类和算法类。
3.集合中重要的接口:
① 列表(List):主要处理链表,数组列表,向量和堆栈等“列表”;(特点:是一列数据,数据内容可以重复,以元素安插的顺序来放置元素,不会重新排列)。
② 集(Set):从集合派生而来,主要处理哈希集和树集等“集”数据;(特点:是一列数据,数据内容不能重复,有自己的排列机制)。
③ 映射(Map):所有Map类的根,用于维护键值对,(特点:是一列数据对,其中key不可以重复,value可以重复)。

普通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>

摘抄自我的百度博客:http://hi.baidu.com/zhf6231/blog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: