我在阅读JSR-335规范时遇到了这个陈述:
(test ? list.map(String::length) : Collections.emptyList())::iterator
这list.map(String::length)
是什么意思?
答案 0 :(得分:3)
我认为这是对length
中定义的java.lang.String
方法的引用。在这种情况下,您基本上是在告诉.map()
在集合的每个成员上调用该方法,并返回一个由这些长度组成的新集合。
答案 1 :(得分:3)
map
操作允许您将一个函数(在本例中为String::length
)应用于列表中的每个参数,并返回另一个集合,该集合包含应用该结果的结果函数到每个列表元素。在这种情况下,是一个整数列表。
假设我有一个类似的列表:
{"Bob", "Mary", "Joe"}
然后你会回来的:
{3, 4, 3}
应用您的特定映射后。