map集合的遍历几种方式

    Map<String,Object> map = new HashMap<>();
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();
        List<Integer> list3 = new ArrayList<>();
        list1.add(1);list1.add(2);list1.add(3);
        list2.add(1);list2.add(2);list2.add(3);
        list3.add(1);list3.add(2);list3.add(3);
        map.put("list1",list1);map.put("list2",list2);map.put("list3",list3);
        for (String key:map.keySet()){ //1
            System.out.println("第一种方法: map key is "+key+ "and map value is  "+map.get(key));
        }
         Iterator<Map.Entry<String,Object>> iterator= map.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry<String,Object> entry = iterator.next();
            System.out.println("第二种方法: map key is " +entry.getKey()+", map value is "+entry.getValue());
        }
        for (Map.Entry<String,Object> entry:map.entrySet()){
            System.out.println("第三种方法: map key is "+entry.getKey()+",map value is "+entry.getValue());
        }
        for (Object value:map.values()){
            System.out.println("第四种写法:map value is "+value);
        }

Map集合常见的遍历方式有以下几种: ### 键找值 先获取Map集合的全部键的Set集合,再遍历键的Set集合,然后通过键提取对应值。示例代码如下: ```java import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTraversal1 { public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("鸿星尔克", 2); maps.put("数据结构", 2); Set<String> keys = maps.keySet(); for (String key1 : keys) { int value1 = maps.get(key1); System.out.println(key1 + " ===> " + value1); } } } ``` 这种方式的缺点是,使用增强for循环遍历的时候,无法直接确定元素类型[^1][^2][^3]。 ### 键值对流程 先把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型,再遍历Set集合,然后提取键以及提取值。示例代码如下: ```java import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapTraversal2 { public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("鸿星尔克", 2); maps.put("数据结构", 2); Set<Map.Entry<String, Integer>> entries = maps.entrySet(); for (Map.Entry<String, Integer> entry : entries) { String key = entry.getKey(); int value = entry.getValue(); System.out.println(key + " ===> " + value); } } } ``` 该方式能更方便地同时获取键和值[^1]。 ### Lambda表达式 使用Lambda表达式可以更简洁地遍历Map集合。示例代码如下: ```java import java.util.HashMap; import java.util.Map; public class MapTraversal3 { public static void main(String[] args) { Map<String, Integer> maps = new HashMap<>(); maps.put("鸿星尔克", 2); maps.put("数据结构", 2); maps.forEach((k, v) -> { System.out.println(k + " ---> " + v); }); } } ``` 这种方式代码简洁,适用于Java 8及以上版本[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值