Java List过滤对象某个字段为空的对象
作为一名经验丰富的开发者,我们经常会遇到需要对List中的对象进行过滤的情况。本文将教会你如何使用Java来过滤List中某个字段为空的对象。
流程图
flowchart TD
A[开始] --> B[创建List对象]
B --> C[过滤对象某个字段为空]
C --> D[返回过滤后的List]
D --> E[结束]
步骤
-
首先,我们需要创建一个List对象,并向其中添加一些对象。我们假设这些对象具有相同的属性和类型。
List<YourObject> list = new ArrayList<>();
list.add(new YourObject(John, 25));
list.add(new YourObject(Alice, 30));
list.add(new YourObject(null, 40));
list.add(new YourObject(Mike, 35));在这里,我们创建了一个名为"list"的List对象,并向其中添加了四个YourObject对象。其中,第三个对象的名字字段为空。
-
接下来,我们需要过滤掉名字字段为空的对象。我们可以使用Java 8的Stream API来完成这个任务,具体如下:
List<YourObject> filteredList = list.stream()
.filter(obj -> obj.getName() != null)
.collect(Collectors.toList());在这里,我们使用了Stream的filter操作,将不为空的对象保留下来。然后,我们使用collect操作将过滤后的对象收集到一个新的List中。
-
最后,我们将过滤后的List打印出来,以验证我们的过滤操作是否成功。
for (YourObject obj : filteredList) {
System.out.println(obj.getName() + - + obj.getAge());
}这段代码将遍历过滤后的List,并将每个对象的名字和年龄打印出来。
完整的代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<YourObject> list = new ArrayList<>();
list.add(new YourObject(John, 25));
list.add(new YourObject(Alice, 30));
list.add(new YourObject(null, 40));
list.add(new YourObject(Mike, 35));
List<YourObject> filteredList = list.stream()
.filter(obj -> obj.getName() != null)
.collect(Collectors.toList());
for (YourObject obj : filteredList) {
System.out.println(obj.getName() + - + obj.getAge());
}
}
}
class YourObject {
private String name;
private int age;
public YourObject(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
代码运行结果:
John - 25
Alice - 30
Mike - 35
在这个例子中,我们成功地过滤掉了名字字段为空的对象,并打印出了过滤后的对象的名字和年龄。
希望这篇文章对你有所帮助!有任何问题,请随时向我提问。