在java中需要一些关于这个Lambda表达式的帮助

时间:2013-12-06 03:11:45

标签: java map

我在阅读JSR-335规范时遇到了这个陈述:

(test ? list.map(String::length) : Collections.emptyList())::iterator

list.map(String::length)是什么意思?

2 个答案:

答案 0 :(得分:3)

我认为这是对length中定义的java.lang.String方法的引用。在这种情况下,您基本上是在告诉.map()在集合的每个成员上调用该方法,并返回一个由这些长度组成的新集合。

答案 1 :(得分:3)

map操作允许您将一个函数(在本例中为String::length)应用于列表中的每个参数,并返回另一个集合,该集合包含应用该结果的结果函数到每个列表元素。在这种情况下,是一个整数列表。

假设我有一个类似的列表:

{"Bob", "Mary", "Joe"}
然后你会回来的:

{3, 4, 3}

应用您的特定映射后。