java中遍历Map的几种方法

本文介绍了如何在Java中使用Map的keySet(), values(), entrySet()和Iterator方法来操作键值对,包括获取key、value,以及注意事项。通过实例演示了如何结合这些方法获取并遍历Map的元素。
摘要由CSDN通过智能技术生成

先初始化一个map

//直接在main 方法中创建
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put(1,1);
        map.put(2,2);
        map.put(3,3);
        map.put(4,4);
        map.put(5,5);

keySet values

如果只需要map的key或者value,用map的keySet或values方法

    // KeySet 获取key
    public static void testKeySet(Map<Integer,Integer> map) {
        for (Integer key : map.keySet()) {
            System.out.println(key);
        }
    }
    // values 获取value
    public static void testValues(Map<Integer,Integer> map) {
        for (Integer value : map.values()) {
            System.out.println(value);
        }
    }

 

//在main方法直接调用
testKeySet(map);
testValues(map);

结果:key

 

      :value

下面方法可自己测试

keySet get(key)

如果需要同时获取key和value,可以先获取key,然后再通过map的get(key)获取value

 // keySet get(key) 获取key and value
  public void testKeySetAndGetKey() {
    for (Integer key : map.keySet()) {
      System.out.println(key + ":" + map.get(key));
    }
  }

entrySet

通过对map entrySet的遍历,也可以同时拿到key和value,一般情况下,性能上要优于上一种,这一种也是最常用的遍历方法

  // entrySet 获取key and value
  public void testEntry() {
    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
      System.out.println(entry.getKey() + ":" + entry.getValue());
    }
  }

Iterator

在用foreach遍历map时,如果改变其大小,会报错,但如果只是删除元素,可以使用Iterator的remove方法删除元素,

// Iterator entrySet 获取key and value
  public void testIterator() {
    Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
    while (it.hasNext()) {
      Map.Entry<Integer, Integer> entry = it.next();
      System.out.println(entry.getKey() + ":" + entry.getValue());
      // it.remove(); 删除元素
    }
  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值