Java 使用 Stream API 筛选 List 集合中所有属性为空的用户数据
Java 使用 Stream API 筛选 List 集合中所有属性为空的用户数据
本文将介绍如何使用 Java 8 的 Stream API 从 List 集合中筛选出所有属性都为空的用户数据。
假设你有一个 List 集合,其中保存的是 User 对象,而部分用户对象的所有属性都为空。现在你需要找出这些属性都为空的用户数据。
代码示例
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User(null, null, null));
userList.add(new User('John', null, null));
userList.add(new User(null, 'Doe', null));
userList.add(new User(null, null, 'john.doe@example.com'));
userList.add(new User('Jane', 'Smith', 'jane.smith@example.com'));
List<User> emptyUsers = userList.stream()
.filter(user -> user.getName() == null && user.getSurname() == null && user.getEmail() == null)
.collect(Collectors.toList());
System.out.println('Empty users:');
for (User user : emptyUsers) {
System.out.println(user);
}
}
static class User {
private String name;
private String surname;
private String email;
public User(String name, String surname, String email) {
this.name = name;
this.surname = surname;
this.email = email;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
public String getEmail() {
return email;
}
@Override
public String toString() {
return 'User{' +
'name=' + name + ''' +
', surname=' + surname + ''' +
', email=' + email + ''' +
'}';
}
}
}
代码解释
- 创建一个
User类,包含name、surname和email三个属性。 - 创建一个
List<User>集合userList,并添加一些用户对象。 - 使用
Stream API的filter方法筛选userList中所有属性都为空的用户对象。 - 使用
collect(Collectors.toList())方法将筛选结果收集到一个新的List集合emptyUsers中。 - 输出
emptyUsers中的所有用户对象。
总结
通过以上代码示例,我们可以使用 Java 8 的 Stream API 轻松地从 List 集合中筛选出所有属性都为空的用户数据。filter 方法是 Stream API 中常用的方法,可以根据条件对集合元素进行筛选,提高代码的简洁性和可读性。
原文地址: https://www.cveoy.top/t/topic/p6So 著作权归作者所有。请勿转载和采集!