Enumerable 的 Java 等效项是什么?在 C# 中使用 lambdas 选择?

2022-08-31 16:26:33

假设我在 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中,我该如何做同样的事情?


答案 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());

但是,收集到一个或另一个中的目的是仅在您需要这样的 .否则,您将继续使用流的操作,因为您可以执行您可以对 a 和更多操作执行的所有操作,而无需对 s 进行中间存储,例如ListCollectionCollectionCollectionString

persons.stream().map(Person::getName).forEach(System.out::println);

答案 2

推荐