java遍历map的集中用法(执行效率)

首先,遍历map有以下方法:

import java.util.HashMap;   
import java.util.Iterator;   
import java.util.Map;   
  
public class MapTest {   
  
    public static void main(String[] args) {   
        Map<String, String> map = new HashMap<String, String>();   
        map.put("1", "1");   
        map.put("2", "2");   
        map.put("3", "3");   
  
  
        // 第一种:通过Map.keySet遍历key和value   
        System.out.println("通过Map.keySet遍历key和value:");   
        for (String key : map.keySet()) {   
            System.out.println("key= " + key + "  and  value= " + map.get(key));   
        }   
           
        // 第二种:通过Map.entrySet使用iterator遍历key和value   
        System.out.println("通过Map.entrySet使用iterator遍历key和value:");   
        Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();   
        while (it.hasNext()) {   
            Map.Entry<String, String> entry = it.next();   
  
            System.out.println("key= " + entry.getKey() + "  and  value= "  
                    + entry.getValue());   
        }   
  
        // 第三种:通过Map.entrySet遍历key和value   
        System.out.println("通过Map.entrySet遍历key和value:");   
        for (Map.Entry<String, String> entry : map.entrySet()) {   
            System.out.println("key= " + entry.getKey() + "  and  value= "  
                    + entry.getValue());   
        }   
  
        // 第四种:通过Map.values()遍历所有的value,但是不能遍历键key   
        System.out.println("通过Map.values()遍历所有的value:");   
        for (String v : map.values()) {   
            System.out.println("value= " + v);   
        }   
    }   
  
}  

结果如下:


通过Map.keySet遍历key和value:   
key= 3  and  value= 3  
key= 2  and  value= 2  
key= 1  and  value= 1  
通过Map.entrySet使用iterator遍历key和value:   
key= 3  and  value= 3  
key= 2  and  value= 2  
key= 1  and  value= 1  
通过Map.entrySet遍历key和value:   
key= 3  and  value= 3  
key= 2  and  value= 2  
key= 1  and  value= 1  
通过Map.values()遍历所有的value:   
value= 3  
value= 2  
value= 1  

这四种方法都可以遍历map:

第一种是目前许多人最喜欢的一种方式,因为代码最少,看起来最简单,通过遍历keySet,再将key所对应的value查询出来,这里有一个二次取值的过程,所以并不推荐;

第二种和第三种原理是相同的,都是通过遍历Map.Entry的方式,将Entry中的key和value打印出来,第三种是比较推荐写法,因为采用jdk1.5后的遍历形式,代码看起来比较整洁;

第四种比较少用,因为我们大多数时候都是同时需要key和value的

 

综上所述,如果map里面内容比较少,其实采用哪种方式都可以,第一种和第三种相对简洁一些;但是一旦容量非常大时,更推荐采用第三种方式,相比于第一种将极大地节省性能。

 

注:文章参考:http://blog.sina.com.cn/s/blog_694448320100lx8m.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值