当前位置:  开发笔记 > 编程语言 > 正文

Java 8 foreach函数中有超过1个命令

如何解决《Java8foreach函数中有超过1个命令》经验,为你挑选了3个好方法。

是否可以在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是集合.



1> Jack..:

该lambda语法允许两种对人体的定义:

单个,值返回的表达式,例如: x -> x*2

多个语句,用大括号括起来,例如: x -> { x *= 2; return x; }

第三个特例是允许您在调用void返回方法时避免使用花括号的情况,例如:x -> System.out.println(x).



2> Mohammed Aou..:

用这个:

map.forEach(
    (k,v) -> {
        System.out.println(k);
        v.forEach(t->System.out.print(t.getDescription()))
    }
);



3> Peter Lawrey..:

如果你有一个流你可以使用peek().

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

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有