zoukankan      html  css  js  c++  java
  • Map,HashMap五种遍历方法

    假设有数组   

    HashMap<Integer, String> h=new HashMap<Integer,String>();
    h.put(111, "111-");
    h.put(222, "222-");

    在操作之前明确几个方法的调用位置

    1.keyset方法Map接口
    2.get()方法,来自Map
    3.Set<Map.Entry<K,V>>  entrySet()  来自Map
    4.Set<K>   keySet()  来自Map
    5.iterator()  来自 Collection
    6.getValue()和getKye()   来自  Map内部类entry

    //1.使用增强for 和 keySet()方法

        //先使用Map接口中的keySet()方法  获取返回值set<k>对象,或者叫数组
    Set<Integer> s=h.keySet();
        //此时获得key值
        //遍历使用增强for
    for(Integer i:s)
    {        
            //i为key
            //使用Map接口中的get(key) 方法,返回值为对应的value
      system.out.println(h.get(i));
    }

    //2.使用增强for和Iterator,keyset遍历

        //先使用Map接口中的keySet()方法  获取返回值set<k>对象,或者叫数组
    Set<Integer> s=h.keySet();
        //使用Iterator接口中的iterator()方法,返回值为Iterator<E>对象,set继承了Collection
        //所以拥有iterator()方法,可以直接使用
    Iterator i=s.iterator();
        //使用增强for遍历
    while(i.hasnext())
    {
      system.out.println(s.get(i.next()));
    }

    //3.使用entrySet()和增强for

    Set<Map.Entry<Integer, String>> s3=h.entrySet();
    for(Map.Entry<Integer, String> m:s3)
    {
        System.out.println(m.getValue()+m.getKey());
    }

    //4.使用entrySet()和Iterator

    Set<Map.Entry<Integer, String>> s4=h.entrySet();
    Iterator<Map.Entry<Integer, String>> i2=s4.iterator();
    while(i2.hasNext())
    {
       Map.Entry<Integer, String> a=i2.next();
       System.out.println(a.getValue()+a.getKey());
    }

    //5.只能遍历到内容的方法

     //Collection<String> c2=new ArrayList<String>();
    Collection<String> c=h.values();
     //ArrayList<String> a=(ArrayList<String>)c;
    for(String s:c)
    {
        System.out.println(s);
    }
  • 相关阅读:
    QuartzNet使用
    Flex Metadata tags 元数据标签
    fb设置viewSourceURL
    免费开放的API
    测试跨域加载
    nape.geom.MarchingSquares
    bootstrap 全局样式
    <meta> 标记汇总
    bootstrap模版兼容IE浏览器代码嵌入
    正则表达式语法
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/10463481.html
Copyright © 2011-2022 走看看