Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java8foreach函数中不止一个命令_Java_Lambda_Java 8 - Fatal编程技术网

Java8foreach函数中不止一个命令

Java8foreach函数中不止一个命令,java,lambda,java-8,Java,Lambda,Java 8,可以在Java 8引入的Map.foreach函数中使用多个命令吗 因此: map.forEach((k, v) -> System.out.println(k + "=" + v)); 我想做一些类似的事情: map.forEach((k, v) -> System.out.println(k)), v.forEach(t->System.out.print(t.getDescription())); 让我们假设k是字符串,v是集合。使用以下方法: map.forEa

可以在Java 8引入的Map.foreach函数中使用多个命令吗

因此:

map.forEach((k, v) -> 
System.out.println(k + "=" + v));
我想做一些类似的事情:

map.forEach((k, v) -> 
System.out.println(k)), v.forEach(t->System.out.print(t.getDescription()));
让我们假设k是字符串,v是集合。

使用以下方法:

map.forEach(
    (k,v) -> {
        System.out.println(k);
        v.forEach(t->System.out.print(t.getDescription()))
    }
);
允许对主体进行两种类型的定义:

  • 单个返回值的表达式,例如:
    x->x*2
  • 多个语句,用大括号括起来,例如:
    x->{x*=2;返回x;}

第三种特殊情况是,在调用
void
返回方法时,可以避免使用大括号,例如:
x->System.out.println(x)
,如果有流,可以使用peek()


无论何时,只要您想将多个语句组合成一个代码块,答案都是一样的——使用大括号:
map.forEach((k,v)->{…}
map.entrySet().stream()
   .peek(System.out::println) // print the entry
   .flatMap(e -> e.getValue().stream())
   .map(t -> t.getDescription())
   .forEach(System.out::println); // print all the descriptions