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);
        }
    }

}
原文地址:https://www.cnblogs.com/mynona/p/3720779.html