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

来源:互联网 发布:百度云管家有mac版吗 编辑:程序博客网 时间:2024/05/11 02:36

今天碰到个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

原创粉丝点击