58

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

4

1 回答 1

68

如果你有一个像你这样的人的列表,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());

但是收集到 aList或 otherCollection的目的是仅在您需要这样的Collection. 否则,您将继续使用流的操作,因为您可以使用 a 做所有可以做的事情,Collection而且不需要对Strings 进行中间存储,例如

persons.stream().map(Person::getName).forEach(System.out::println);
于 2013-10-16T07:45:40.100 回答