Java:Map集合的遍历方式

Map集合的常见遍历方式有三种:

  • 第一种:键找值。即先获取Map集合全部的键,再通过遍历键来找值。(简单,推荐使用)
  • 第二种:键值对。把键值对看成一个整体进行遍历。(稍微复杂)
  • 第三种:使用forEach方法结合Lambda表达式。这是JDK 1.8之后才支持的。(简单,推荐使用)

键找值遍历方式

采用键找值的遍历方式,需要用到Map的如下方法:

  • Set<K> keySet():获取所有键的集合
  • V get(Object key):根据键获取对应的值

示例

package com.team.map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test {

    public static void main(String[] args) {
        Map<String, Double> map = new HashMap<>();
        map.put("张三", 12.5);
        map.put("张三", 20.2);
        map.put("李四", 22.0);
        map.put("王五", 16.8);
        map.put("马六", 15.6);
        System.out.println(map);

        Set<String> keys = map.keySet();
        System.out.println(keys);
        for (String key : keys) {
            double value = map.get(key);
            System.out.println(key + " -> " + value);
        }
    }
}

运行输出:

{李四=22.0, 张三=20.2, 马六=15.6, 王五=16.8}
[李四, 张三, 马六, 王五]
李四 -> 22.0
张三 -> 20.2
马六 -> 15.6
王五 -> 16.8

键值对遍历方式

把键值对看成一个整体进行遍历。

需要用到如下方法:
Map提供的方法

  • Set<Map.Entry<K,V>> entrySet():返回此映射中包含的映射的Set视图。

Map.Entry提供的方法

  • K getKey():获取键
  • V getValue():获取值

示例

package com.team.map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test {

    public static void main(String[] args) {
        Map<String, Double> map = new HashMap<>();
        map.put("张三", 12.5);
        map.put("李四", 22.0);
        map.put("王五", 16.8);
        map.put("马六", 15.6);
        System.out.println("map:" + map);

        Set<Map.Entry<String, Double>> entries = map.entrySet();
        System.out.println("entries:" + entries);
        for (Map.Entry<String, Double> entry : entries) {
            String key = entry.getKey();
            double value = entry.getValue();
            System.out.println(key + " -> " + value);
        }
    }
}

运行输出:

map:{李四=22.0, 张三=12.5, 马六=15.6, 王五=16.8}
entries:[李四=22.0, 张三=12.5, 马六=15.6, 王五=16.8]
李四 -> 22.0
张三 -> 12.5
马六 -> 15.6
王五 -> 16.8

使用forEach方法结合Lambda表达式遍历

需要用到Map的如下方法:

  • default void forEach(BiConsumer<? super K,? super V> action):对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作抛出异常。

示例

package com.team.map;

import java.util.HashMap;
import java.util.Map;

public class Test {

    public static void main(String[] args) {
        Map<String, Double> map = new HashMap<>();
        map.put("张三", 12.5);
        map.put("李四", 22.0);
        map.put("王五", 16.8);
        map.put("马六", 15.6);
        System.out.println("map:" + map);

        map.forEach((key, value) -> {
            System.out.println(key + " -> " + value);
        });
    }
}

运行输出:

map:{李四=22.0, 张三=12.5, 马六=15.6, 王五=16.8}
李四 -> 22.0
张三 -> 12.5
马六 -> 15.6
王五 -> 16.8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值