zoukankan      html  css  js  c++  java
  • map与set的遍历

    map有四种方式:

    1.直接遍历 keySet

    2.使用Iterator //注意next放回的对象是map.Entry<K,V>,而使用的iterator是通过entrySet返回的一个set得到的

    3.直接遍历 entrySet

    4.遍历values(); //这种不能得到key

    代码事例:

    package test;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * Map的遍历
     * 
     * @author lin
     * 
     */
    public class MapTest {
    
        public static void main(String[] args) {
    
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            map.put("a", 1);
            map.put("b", 2);
            map.put("c", 3);
            
            /*
             * 用keySet()
             */
            Set<String> set = map.keySet();
            for(String key : set){
                
                int value = (Integer) map.get(key);
                System.out.println("key:" + key + " value:"+value);
            }
            
            /*
             * 用entrySet() 
             * 注意:返回的是一个Set
             * 这个方法的Iterator.next()返回的才是Map.Entry<K,V> ,如果Set
             * 用这个方法的话,那么放回的不是Map.Entry<K,V>
             * 反正就是要主要Map与Set用这个方法遍历的不同
             */
            
            Set<Map.Entry<String, Integer>> set2 = map.entrySet();
            Iterator it = set2.iterator();
            
            while(it.hasNext()){
                Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>)it.next();
                String key = entry.getKey();
                int value = entry.getValue();
                
                System.out.println("key:" + key + "  value:" + value);
            }
            
            
            /*当map容量很大时,这个效率最高
             * 直接遍历entrySet()
             */
            for(Map.Entry<String, Integer> entry : map.entrySet()){
                
                System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
            }
            
            /*
             * 通过values遍历
             * 注意这种方法得不到key的
             */
            for(Integer value : map.values()){
                System.out.println("key:" + map.get(value) + "   value:" + value);
            }
        }
    
    }
    package test;
    
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    
    public class SetTest {
    
        public static void main(String[] args) {
            
            Set<String> set = new HashSet<String>();
            
            set.add("a");
            set.add("b");
            set.add("c");
            
            Iterator it = set.iterator();
            while(it.hasNext()){
                
                String key = (String)it.next();
                System.out.println("key:" + key);
            }
        }
    
    }
  • 相关阅读:
    js 正则表达式之环视结构
    Js 控制随机数概率
    js 随机点名
    事件处理机制
    事件处理程序 (DOM0级)
    事件处理程序(HTML)
    js正则表达式 URL格式匹配详解
    CSS中的圣杯布局与双飞翼布局
    CSS中的vertical-align属性
    CSS中元素的显示模式
  • 原文地址:https://www.cnblogs.com/mynona/p/3720779.html
Copyright © 2011-2022 走看看