• map的遍历


    keyset与entryset的比较:

    Map<String,String> map=new HashMap<String, String>();
    map.put("1","a");
    map.put("2","b");
    map.put("3","c");
    map.put("4","d");
    map.put("5","e");
    map.put("6","f");
    map.put("7","g");
    map.put("8","h");
    map.put("9","j");
     
    Set<String> ls=map.keySet();//这里是生成键的视图  如果要读取还必须get一次
    for(String l:ls)
    System.out.println("k="+l+" v="+map.get(l));
     
    Set<Map.Entry<String, String>> lv=map.entrySet();//这里是生成键和映射关系的视图    不需要再get一次。所以效率明显快
    for(Map.Entry<String, String> l:lv)
    System.out.println(l.getKey()+"-----"+l.getValue());
    }

     

    关于Java集合的Map集合的遍历  

     
     

    普通Java代码

    map.keySet();键集合 
    map.values();值集合 
    map.entrySet();键值集合

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;

    public class MapTest {

    public static void main(String[] args) {
    Map map=new HashMap();
    map.put("a","1");
    map.put("b","2");
    map.put("c","3");

    //for循环方式——遍历键,通过键取值
    //map.keySet();键集合
    //map.values();值集合
    //map.entrySet();键值集合

    //最常用的方法
    Set set = map.keySet();
    for(Object key : set){
    System.out.println("键:" + key +" 值:" + map.get(key));
    }
    System.out.println("--------------");

    it.hasNext()分为两个:it 和  .hasNext();
    1. it:这里应该是上文定义了一个可迭代对象
    2. .hasNext(): 检查序列中是否还有元素
    3. 其他Iterator用法。
    1)使用方法 iterator()要求容器返回一个 Iterator。第一次调用Iterator 的next()方法时,它返回序列的第一个元素。
    2)使用next()获得序列中的下一个元素。
    3)使用hasNext()检查序列中是否还有元素。
    4)使用remove()将上一次返回的元素从迭代器中移除。


    //Iterator方式——遍历键集合
    Iterator it = map.keySet().iterator();
    while(it.hasNext()){
    System.out.println("键:" + it.next());
    }
    System.out.println("--------------");
    Iterator it2 = map.entrySet().iterator();
    while(it2.hasNext()){
    System.out.println("键:" + it2.next());
    }
    }
    }

    结果:

    键:b? 值:2 
    键:c? 值:3 
    键:a? 值:1 
    -------------- 
    键:b 
    键:c 
    键:a 
    -------------- 
    键:b=2 
    键:c=3 
    键:a=1

    在页面上使用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>

  • 相关阅读:
    【ARM-Linux开发】C语言getcwd()函数:取得当前的工作目录
    【ARM-Linux开发】C语言getcwd()函数:取得当前的工作目录
    【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
    【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
    【ARM-Linux开发】 pkg-config的用法
    【ARM-Linux开发】 pkg-config的用法
    【ARM-Linux开发】gstreamer教程及在DM3730上的应用
    【ARM-Linux开发】gstreamer教程及在DM3730上的应用
    【ARM-Linux开发】打包解包命令
    【ARM-Linux开发】打包解包命令
  • 原文地址:https://www.cnblogs.com/fengli9998/p/7282105.html
Copyright © 2020-2023  润新知