当前位置: 首页 > 知识库问答 >
问题:

映射条目集的forEach循环Java 8

邵城
2023-03-14
for (Map.Entry<String, String> entry : map.entrySet()) {
        System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());
    }
map.forEach( Map.Entry<String, String> entry -> {
       System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());

   }); 
Map.Entry<String, String> entry;
   map.forEach(entry -> {
       System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());

   });

共有1个答案

荀俊迈
2023-03-14

阅读javadoc:映射 .foreach() 需要一个双onsumer<?超级K?super v>作为参数,而双onsumer 抽象方法的签名是accept(T T,U U)

因此,您应该向它传递一个lambda表达式,该表达式以两个输入作为参数:键和值:

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

如果您对映射的条目集而不是映射本身调用forEach(),那么您的代码就可以工作:

map.entrySet().forEach(entry -> {
    System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue());
}); 
 类似资料:
  • 我有一个父类和子类,其各自的DTO如下 当我试图将父映射到父映射到父映射到父映射时,我得到了堆栈溢出错误。 请帮我解决这个问题。

  • 我只是用PHP和PDO在MySQL数据库中工作进行了一些实验,我有点困惑为什么在得到结果后,将它们正确地存储在多维数组中,并循环通过它们,它会两次输出其中一个数组数据。 基本上,以下是获取数据的查询: 我希望与此得到1行返回每个家庭,它在PHPMyAdmin查询和print_r()结果时都能正常工作。 然后我存储在: 在执行print_r()时,以及在foreach循环中回显每个条目的ID时,它也

  • foreach循环遍历列表值并将控制变量(var)依次设置为列表的每个元素 - 语法 (Syntax) Perl编程语言中foreach循环的语法是 - foreach var (list) { ... } 流程图 (Flow Diagram) 例子 (Example) #!/usr/local/bin/perl @list = (2, 20, 30, 40, 50); # foreach lo

  • 除了前面介绍的几种循环语句外,C# 同样也支持 foreach 循环,使用 foreach 可以遍历数组或者集合对象中的每一个元素,其语法格式如下: foreach(数据类型 变量名 in 数组或集合对象){     语句块; } foreach 会在每次循环的过程中,依次从数组或集合对象中取出一个新的元素放到 里定义的变量中,直到所有元素都成功取出后退出循环。 【示例】使用 foreach 循环

  • 本文向大家介绍C# Foreach循环,包括了C# Foreach循环的使用技巧和注意事项,需要的朋友参考一下 示例 foreach将迭代实现的类的任何对象IEnumerable(请注意IEnumerable<T>从其继承的对象)。此类对象包括一些内置对象,但不限于:List<T>,T[](任何类型的数组),Dictionary<TKey, TSource>以及诸如IQueryable和IColl

  • Perl 循环 Perl foreach 循环用于迭代一个列表或集合变量的值。 语法 语法格式如下所示: foreach var (list) { ... } 流程图 Perl 循环