zoukankan      html  css  js  c++  java
  • java Map Set遍历

             Map是java中的接口,Map.Entry是Map的一个内部接口。

             Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

             Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

             

            由以上可以得出,遍历Map的常用方法:

           1.  Map map = new HashMap();

               Iterator iterator = map.entrySet().iterator();//写成两步:Set<Map.entry<T,T>> set = map.entrySet();Irerator<T> iterator = set.iterator();

               while(iterator.hasNext()) {

                       Map.Entry entry = iterator.next();

                       Object key = entry.getKey();

                       //

               }

           2.Map map = new HashMap(); 

               Set  keySet= map.keySet();

               Irerator iterator = keySet.iterator;

               while(iterator.hasNext()) {

                       Object key = iterator.next();

                       Object value = map.get(key);

                       //

               }

           另外,还有一种遍历方法是,单纯的遍历value值,Map有一个values方法,返回的是value的Collection集合。通过遍历collection也可以遍历value,如

          Map map = new HashMap();

          Collection c = map.values();

          Iterator iterator = c.iterator();

          while(iterator.hasNext()) {

                 Object value = iterator.next(); 

         }

    原文地址:http://hi.baidu.com/wh_fly/item/ec43afaf57c4a4dd5bf191b1

    Set遍历 

    1.迭代遍历:
    Set<String> set = new HashSet<String>();
    Iterator<String> it = set.iterator();
    while (it.hasNext()) {
    String str = it.next();
    System.out.println(str);
    }
    2.for循环遍历:
    for (String str : set) {
    System.out.println(str);
    }
    优点还体现在泛型 假如 set中存放的是Object
    Set<Object> set = new HashSet<Object>();
    for循环遍历:
    for (Object obj: set) {
    if(obj instanceof Integer){
    int aa= (Integer)obj;
    }else if(obj instanceof String){
    String aa = (String)obj
    }
    ........
    }

  • 相关阅读:
    hdu 4614 线段树 二分
    cf 1066d 思维 二分
    lca 最大生成树 逆向思维 2018 徐州赛区网络预赛j
    rmq学习
    hdu 5692 dfs序 线段树
    dfs序介绍
    poj 3321 dfs序 树状数组 前向星
    cf 1060d 思维贪心
    【PAT甲级】1126 Eulerian Path (25分)
    【PAT甲级】1125 Chain the Ropes (25分)
  • 原文地址:https://www.cnblogs.com/flying607/p/3396351.html
Copyright © 2011-2022 走看看