list = people.stream().map(Person::getName).collect(Collectors.toList());"-6ren"> list = people.stream().map(Person::getName).collect(Collectors.toList());"-我正在阅读有关 List 接口(interface)的 Oracle Java 教程,遇到了以下语法: List list = people.stream().map(Person::getName)-6ren">
gpt4 book ai didi

java - 努力理解 "List list = people.stream().map(Person::getName).collect(Collectors.toList());"

转载 作者:行者123 更新时间:2023-11-29 02:59:28 24 4
gpt4 key购买 nike

我正在阅读有关 List 接口(interface)的 Oracle Java 教程,遇到了以下语法:

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

教程中只提到这是一个将一些名字聚合成一个List的例子,并没有做进一步的解释。我一直在努力理解这个声明实际上是如何运作的。有人可以向我解释一下吗?

最佳答案

  • 第一种方法, people.stream() 创建一个 Stream<Person> .
  • 转换由 map() 指定.每个Person在流中将被转换为 String通过调用 getName()在上面。 Person::getName syntax 是一个“方法引用”,类型为 Function<Person,String> 在这种情况下。结果是 Stream<String> .
  • A Collector<String,?,List<String>>使用工厂方法创建 Collectors.toList() .
  • collect() 方法是终端操作;调用它会导致 Stream待评估。收集结果,产生新的 List<String> .

关于java - 努力理解 "List<String> list = people.stream().map(Person::getName).collect(Collectors.toList());",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929847/

24 4 0
文章推荐: java - 访问覆盖方法java中声明的方法
文章推荐: java - 从 FireBase 内部类中检索 ArrayList