Java Stream API:使用Stream获取List中的属性组成新List

Java 8 引入了 Stream API,它提供了一种声明式的方式来处理集合。Stream API 允许我们用一种更加简洁、高效的方式对集合进行操作。在本文中,我们将探讨如何使用 Stream API 来从 List 中提取对象的属性,并创建一个新的 List。

概述

在 Java 中,我们经常需要从一个对象列表中提取特定的属性,并将这些属性存储在一个新的列表中。例如,我们有一个 Person 类的列表,我们需要从这个列表中提取所有人的名字,并创建一个包含这些名字的新列表。

准备工作

首先,我们需要定义一个 Person 类,它包含一些基本属性,如 nameage

public class Person {
    private String name;
    private int age;

    // 构造器、getter 和 setter 省略
}

接下来,我们创建一个 Person 对象的列表。

List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 30));
people.add(new Person("Bob", 25));
people.add(new Person("Charlie", 35));

使用 Stream API 提取属性

现在,我们将使用 Stream API 来提取 Person 对象的 name 属性,并创建一个新的 String 类型的列表。

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

这里,我们使用了 stream() 方法将 people 列表转换为 Stream。然后,我们使用 map() 方法来应用一个函数,该函数将 Person 对象映射到它的 name 属性。最后,我们使用 collect() 方法将结果收集到一个新的列表中。

状态图

以下是使用 Stream API 处理集合的状态图:

stateDiagram-v2
    [*] --> Start: 初始化
    Start --> Process: 处理集合
    Process --> Extract: 提取属性
    Extract --> Collect: 收集结果
    Collect --> [*]: 结束

类图

以下是 Person 类的类图:

classDiagram
    class Person {
        +String name
        +int age
        +Person(String name, int age)
        +String getName()
        +int getAge()
    }

结论

Java Stream API 提供了一种强大且灵活的方式来处理集合。通过使用 Stream API,我们可以轻松地从对象列表中提取特定的属性,并创建一个新的列表。这不仅使代码更加简洁,而且提高了代码的可读性和可维护性。在本文中,我们学习了如何使用 Stream API 来提取 Person 对象的 name 属性,并创建一个新的 String 类型的列表。希望这对你在使用 Stream API 时有所帮助。