Java Stream API:使用Stream获取List中的属性组成新List
Java 8 引入了 Stream API,它提供了一种声明式的方式来处理集合。Stream API 允许我们用一种更加简洁、高效的方式对集合进行操作。在本文中,我们将探讨如何使用 Stream API 来从 List 中提取对象的属性,并创建一个新的 List。
概述
在 Java 中,我们经常需要从一个对象列表中提取特定的属性,并将这些属性存储在一个新的列表中。例如,我们有一个 Person
类的列表,我们需要从这个列表中提取所有人的名字,并创建一个包含这些名字的新列表。
准备工作
首先,我们需要定义一个 Person
类,它包含一些基本属性,如 name
和 age
。
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 时有所帮助。