假设我在 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 中做同样的事情?
如果你有一个像你这样的人的列表,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
而且不需要对String
s 进行中间存储,例如
persons.stream().map(Person::getName).forEach(System.out::println);