Java中用于映射haskell或在C#中选择的等效方法是什么?

Rai*_*ruz 3 java lambda functional-programming

Java中是否有类似于Haskell或Schema中的map函数或C#中的Select extensor方法的内置函数?我只是想以更短的方式编写这种代码:

List<String> names = new ArrayList<String>();
foreach (User element : getUsers()) {
   names.add(element.getName());
};
return names; 
Run Code Online (Sandbox Code Playgroud)

更短的方式(在C#中)

List<String> names = getUsers().Select(x => x.getName()).ToList();
Run Code Online (Sandbox Code Playgroud)

我还需要一种以"友好"的方式传递函数作为参数的方法.

Lou*_*man 5

在Java 8中,这看起来像

import static java.util.stream.Collectors.toList;

List<String> names = getUsers().stream().map(User::getName).collect(toList());
Run Code Online (Sandbox Code Playgroud)