0
点赞
收藏
分享

微信扫一扫

java list过滤对象某个字段为空的对象

捌柒陆壹 2023-11-29 阅读 60

Java List过滤对象某个字段为空的对象

作为一名经验丰富的开发者,我们经常会遇到需要对List中的对象进行过滤的情况。本文将教会你如何使用Java来过滤List中某个字段为空的对象。

流程图

flowchart TD
    A[开始] --> B[创建List对象]
    B --> C[过滤对象某个字段为空]
    C --> D[返回过滤后的List]
    D --> E[结束]

步骤

  1. 首先,我们需要创建一个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对象。其中,第三个对象的名字字段为空。

  2. 接下来,我们需要过滤掉名字字段为空的对象。我们可以使用Java 8的Stream API来完成这个任务,具体如下:

    List<YourObject> filteredList = list.stream()
        .filter(obj -> obj.getName() != null)
        .collect(Collectors.toList());
    

    在这里,我们使用了Stream的filter操作,将不为空的对象保留下来。然后,我们使用collect操作将过滤后的对象收集到一个新的List中。

  3. 最后,我们将过滤后的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

在这个例子中,我们成功地过滤掉了名字字段为空的对象,并打印出了过滤后的对象的名字和年龄。

希望这篇文章对你有所帮助!有任何问题,请随时向我提问。

举报

相关推荐

0 条评论