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

时间:2016-01-12 03:30:21

标签: 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 )
                                   );

还有其他方法可以在Java中表达element -> element吗?如果是这样,他们是什么?

2 个答案:

答案 0 :(得分:4)

您可以使用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()));

答案 1 :(得分:0)

您可以使用同样的Function.identity()