java - lambda 表达式有多少种方式可以立即返回输入?

标签 java lambda

假设我想转换一个 Set<Foo>Map<Integer, Foo>其中键对应于 Foo.hashCode()我通常会按如下方式实现它:

Set<Foo> set = ...;
Map<Integer, Foo> map = set.stream()
                           .collect( Collectors.toMap( Object::hashCode, 
                                                       element -> element )
                                   );

element -> element还有其他表达方式吗?在 java ?如果有,它们是什么?

最佳答案

您可以使用 Function.identity()

Map<Integer, Foo> map = list.stream()
                            .collect(Collectors.toMap(
                                Object::hashCode, 
                                Function.identity()));

你可以静态导入它,然后你就有了

Map<Integer, Foo> map = list.stream()
                            .collect(Collectors.toMap(
                                Object::hashCode,
                                identity()));

关于java - lambda 表达式有多少种方式可以立即返回输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34735125/

相关文章:

java - SWT进度条的标准rgb颜色是什么

java - 将内存中的类日志重定向到 ObjectOutputStream

java - 小代码,不携带值

java - 将数字的十六进制表示形式转换为十进制值的有效方法

PHP:寻找类似 Java Stream API 的东西

c# - 在表达式树中组合表达式

c# - 按集合查询集合的 lambda 表达式

java - AJAX 请求中组件属性在 "reRender"之后未设置

c# - C# 中的 lambda 表达式?

java - Java 8中 "functional interface"的精确定义