遍历HashMap集合的5种方式

public class MyHashMap {
    public static void main(String[] args) {
        UserInfo u1 = new UserInfo();
        u1.setAge(10);
        u1.setName("张三");
        UserInfo u2 = new UserInfo();
        u2.setAge(10);
        u2.setName("李四");
        
        Map<String,UserInfo> map=new HashMap<String, UserInfo>();
        map.put(u1.getName(), u1);
        map.put(u2.getName(), u2);
        
        // 1、for循环第一种,通过key遍历value
        // 1、1 获取所有key的集合
        Set<String> set = map.keySet();
        for(String item:set){
            UserInfo userInfo = map.get(item);
            System.out.println(item+"\t"+userInfo.getAge());
        }
        // 2、直接获取所有value
        Collection<UserInfo> values = map.values();
        for(UserInfo item:values){
            System.out.println(item.getName()+"\t"+item.getAge());
        }
        // 3、for同时遍历Key和value 获取一个Entry集合
        Set<Entry<String,UserInfo>> entrySet = map.entrySet();
        for(Entry<String,UserInfo> item:entrySet){
            System.out.println(item.getKey()+"\t"+item.getValue().getAge());
        }
        // 4、迭代器 根据key遍历value,获取key的单列集合,并使用迭代器遍历
        Iterator<String> iterator = map.keySet().iterator();
        while(iterator.hasNext()){
            String key = iterator.next();
            System.out.println(key+"\t"+map.get(key));
        }
        
        // 5、迭代器同时遍历key+value
        Iterator<Entry<String,UserInfo>> iterator2 = map.entrySet().iterator();
        while(iterator2.hasNext()){
            Entry<String,UserInfo> entry = iterator2.next(); // entry = key + value
            System.out.println(entry.getKey()+"\t"+entry.getValue().getAge());
        }
        
    }
}

 

posted @ 2017-08-29 09:00  AlexanderTheGreat  阅读(714)  评论(0编辑  收藏  举报