Java List 过滤某个字段值为空的数据
在Java编程中,处理集合是一项基本而重要的技能。对于新手开发者来说,了解如何过滤列表中的数据是一个重要的步骤。在这篇文章中,我将向你详细介绍如何使用Java对List进行过滤,特别是我们要过滤掉某个字段值为空的数据。
总体流程
在开始之前,我们先把整体的步骤整理出来。我们将使用一个简单的例子,即使用一个Person
类来表示人的信息,并通过Java的Stream API来过滤空值。
步骤 | 描述 |
---|---|
1. 创建Person类 | 定义Person类及其属性 |
2. 创建示例数据 | 创建一个包含多个Person对象的List |
3. 使用Stream API | 通过Stream API过滤List中属性为空的数据 |
4. 输出结果 | 打印过滤后的List结果 |
步骤详情
1. 创建Person类
我们先定义一个简单的Person
类,这是我们的数据模型。
// Person.java
public class Person {
private String name;
private Integer age;
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
}
代码说明:
name
和age
是Person
的两个属性。- 构造函数用于初始化这些属性。
getName
和getAge
方法用于获取属性值。
2. 创建示例数据
接下来,我们创建一个包含多个Person
对象的List。
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 30));
people.add(new Person(null, 25)); // name为空
people.add(new Person("Bob", null)); // age为空
people.add(new Person("Charlie", 22));
// 继续处理...
}
}
代码说明:
- 我们使用
ArrayList
来存储Person
对象。 - 向列表中添加了一些具有不同
name
和age
值的Person
对象,其中有的字段为空。
3. 使用Stream API过滤List
现在我们可以使用Java 8引入的Stream API来过滤掉name
为空的对象。
import java.util.List;
import java.util.stream.Collectors;
// 过滤掉name为空的人
List<Person> filteredPeople = people.stream()
.filter(person -> person.getName() != null) // 判断name是否为空
.collect(Collectors.toList()); // 收集结果到新的List
// 输出结果
filteredPeople.forEach(p -> System.out.println(p.getName() + ", " + p.getAge()));
代码说明:
people.stream()
将List转换成Stream。filter()
方法用于指定过滤条件,这里检查name
是否为null
。collect(Collectors.toList())
将过滤后的结果收集到新的List中。forEach()
用于遍历并打印出过滤后的对象信息。
4. 输出结果
最后,我们在控制台输出过滤后的people
列表。
类图设计
在这部分,我们可以用mermaid语法展示类图:
classDiagram
class Person {
+String name
+Integer age
+Person(String name, Integer age)
+String getName()
+Integer getAge()
}
关系图
接下来,我们用mermaid语法展示一下关系图:
erDiagram
PERSON {
String name
Integer age
}
PERSON ||--o{ "0..*" PERSON2 : has
结尾
通过上述步骤,我们完成了从创建基础数据模型到最终通过Java过滤列表,输出不为空的记录的过程。希望这篇文章能帮助你理解如何使用Java List和Stream API对数据进行过滤。如果你在实际操作中遇到问题,随时可以查阅Java官方文档或询问更有经验的开发者。不断实践,你将越来越熟悉这些Java的基本操作!