Map的几种循环方法!!

Map的几种循环方法!!

第一种

keySet获取map集合key的集合 然后在遍历key即可

    for(String key:map.keySet()){
           String value = map.get(key).toString();
           System.out.println("key:"+key+" vlaue:"+value);
    }

第二种

通过迭代器的方式

    Iterator<Entry<String, Object>> it = map.entrySet().iterator();
           while(it.hasNext()){
                Entry<String, Object> entry = it.next();
                System.out.println("key:"+entry.getKey()+"  key:"+entry.getValue());
   }

第三种

通过Map.entrySet遍历key和value,在大容量时推荐使用

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

第四种

  for(Object m:map.values()){
          System.out.println(m);
   }

第五种

 map.forEach((k, v) -> System.out.println("key:value = " + k + ":" + v));

在 Java 中,Map 循环结束的方式有多种,以下为你详细介绍: ### 使用传统的 `for-each` 循环结合 `break` 语句 `for-each` 循环可以遍历 `Map` 的 `entrySet`,当满足特定条件时,使用 `break` 语句可以结束整个循环。 ```java import java.util.HashMap; import java.util.Map; public class MapLoopBreakExample { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); for (Map.Entry<Integer, String> entry : map.entrySet()) { if (entry.getKey() == 2) { break; } System.out.println(entry.getKey() + ": " + entry.getValue()); } } } ``` ### 使用迭代器(`Iterator`)的 `remove` 方法结合 `while` 循环 迭代器可以在遍历 `Map` 的 `entrySet` 时,根据条件决定是否继续循环。通过 `hasNext()` 判断是否还有元素,`next()` 获取下一个元素,当满足条件时,可以使用 `break` 结束循环。 ```java import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class MapIteratorBreakExample { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<Integer, String> entry = iterator.next(); if (entry.getKey() == 2) { break; } System.out.println(entry.getKey() + ": " + entry.getValue()); } } } ``` ### 使用 Lambda 表达式的 `forEach` 结合标志位 在使用 Lambda 表达式的 `forEach` 方法遍历 `Map` 时,不能直接使用 `break` 或 `continue`。可以通过设置一个标志位来控制循环是否继续执行。 ```java import java.util.HashMap; import java.util.Map; public class MapLambdaBreakExample { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); boolean[] shouldStop = {false}; map.forEach((key, value) -> { if (shouldStop[0]) { return; } if (key == 2) { shouldStop[0] = true; return; } System.out.println(key + ": " + value); }); } } ``` ### 使用 Stream API 的 `takeWhile` 方法(Java 9 及以上) `takeWhile` 方法可以在满足特定条件时继续处理元素,一旦条件不满足,就停止处理。 ```java import java.util.HashMap; import java.util.Map; public class MapStreamTakeWhileExample { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); map.entrySet().stream() .takeWhile(entry -> entry.getKey() != 2) .forEach(entry -> System.out.println(entry.getKey() + ": " + entry.getValue())); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值