美文网首页
Map集合的遍历方式

Map集合的遍历方式

作者: 假装pretend | 来源:发表于2019-03-07 21:46 被阅读0次

1.定义Map集合

HashMap<Integer, String> map = new HashMap<>();
       map.put(1, "one");
       map.put(2, "two");
       map.put(3, "three");
       map.put(4, "four");
       map.put(5, "five");

2.拿到map集合后进行遍历

根据需求选择遍历方式

(1) 只需获取所有的key,最佳方案如下:

        //获取所有的key
        for (Integer key : map.keySet()) {
            Log.e(TAG, "key-------------: " + String.valueOf(key));
        }
优点:比entrySet遍历要快,代码简洁

(2) 只需获取所有的value,最佳方案如下:

        //获取所有的value
        for (String value : map.values()) {
            Log.e(TAG, "value-----------: " + value);
        }
优点:比entrySet遍历要快,代码简洁

(3) 当同时需要key和value时

方法一:

重复(1)和(2)的两次遍历, 分别获取keys和values

  缺点:需要两次遍历。

方法二:

通过键找值遍历

    for (Integer key : map.keySet()) {//在for-each循环中遍历keys
        String value = map.get(key);
        System.out.println(key+"========"+value);
    }
缺点:根据键取值是耗时操作,效率非常的慢, 所以不推荐

方法三:

通过Map.entrySet遍历key和value

    for (Map.Entry<Integer, String> entry : map.entrySet()) {
        System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }
优点:代码简洁,效率高,推荐使用

方法四:

使用Iterator遍历

    Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry<Integer, String> entry = iterator.next();
        System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }
缺点:代码比起前面几个方法并不简洁。
优点:当遍历的时候,如果涉及到删除操作,建议使用Iterator的remove方法,因为如果使用foreach的话会报错。

相关文章

网友评论

      本文标题:Map集合的遍历方式

      本文链接:https://www.haomeiwen.com/subject/rofkpqtx.html