一尘不染

在C#中,带有lambdas的Enumerable.Select的Java等效项是什么?

java

假设我在C#中有一个对象:

public class Person
{
    public string Name{get;set;}
    public int Age{get;set;}
}

要在C#中从此列表中选择名称,请执行以下操作:

List<string> names = person.Select(x=>x.Name).ToList();

在Java 8中我将如何做同样的事情?


阅读 226

收藏
2020-12-03

共1个答案

一尘不染

如果您有类似的人员列表,List<Person> persons;您可以说

List<String> names
  =persons.stream().map(x->x.getName()).collect(Collectors.toList());

或者

List<String> names
  =persons.stream().map(Person::getName).collect(Collectors.toList());

但是,收集到一个List或其他Collection被intented与传统的API只在你需要这样的使用Collection。否则,您将继续使用流的操作,因为您可以使用a做Collection更多的事情,而无需中间存储Strings,例如

persons.stream().map(Person::getName).forEach(System.out::println);
2020-12-03