Java List 过滤掉某个属性为空的

在日常开发中,我们经常需要对集合中的元素进行过滤操作,以满足业务需求。其中一种常见的情况是过滤掉集合中某个属性为空的元素。本文将介绍如何使用Java来实现这一功能,并附带代码示例。

需求分析

假设我们有一个旅行计划的数据集合,其中每个元素表示一个旅行计划,包含属性如下:

  • id: 旅行计划的唯一标识
  • destination: 目的地
  • date: 出发日期
  • cost: 预算
  • note: 备注

我们需要对这个数据集合进行过滤操作,将其中属性 destination 为空的计划过滤掉。

实现步骤

步骤一:定义旅行计划类

首先,我们需要定义一个旅行计划类 TravelPlan,包含上述属性。

public class TravelPlan {
    private int id;
    private String destination;
    private String date;
    private double cost;
    private String note;

    // 省略构造方法和getter/setter
}

步骤二:创建旅行计划集合

接下来,我们创建一个旅行计划的集合,并添加一些数据用于测试。

List<TravelPlan> travelPlans = new ArrayList<>();
travelPlans.add(new TravelPlan(1, "Paris", "2022-08-15", 2000, "Enjoy the Eiffel Tower"));
travelPlans.add(new TravelPlan(2, "", "2022-09-20", 1500, "Relax on the beach"));
travelPlans.add(new TravelPlan(3, "Tokyo", "2022-10-10", 2500, ""));

步骤三:过滤空属性的旅行计划

我们可以使用Java 8提供的Stream API来实现集合的过滤操作。以下是过滤空属性的旅行计划的代码示例:

List<TravelPlan> filteredTravelPlans = travelPlans.stream()
        .filter(plan -> plan.getDestination() != null && !plan.getDestination().isEmpty())
        .collect(Collectors.toList());

步骤四:打印过滤后的结果

最后,我们可以打印过滤后的结果,查看是否成功过滤掉了属性 destination 为空的旅行计划。

filteredTravelPlans.forEach(plan -> System.out.println(plan.getDestination()));

结果分析

经过以上步骤的操作,我们成功地过滤掉了属性 destination 为空的旅行计划。在打印结果中,我们可以看到只有 "Paris" 和 "Tokyo" 两个目的地被保留下来,而空字符串被过滤掉了。

总结

本文通过一个旅行计划的案例,介绍了如何使用Java实现对集合中某个属性为空的元素进行过滤操作。通过Stream API的filter方法,我们可以方便地实现这一功能,提高代码的简洁性和可读性。

在实际开发中,我们可以根据具体的业务需求,灵活运用集合操作和函数式编程的特性,提高代码的效率和可维护性。希望本文能对读者有所帮助,谢谢阅读!


journey
    title Java List 过滤旅行计划目的地为空的元素

    section 创建旅行计划集合
        CreatePlans(创建旅行计划集合)
        AddPlan1(添加旅行计划1)
        AddPlan2(添加旅行计划2)
        AddPlan3(添加旅行计划3)

    section 过滤空属性的旅行计划
        FilterPlans(过滤空属性的旅行计划)

    section 打印过滤后的结果
        PrintFilteredPlans(打印过滤后的结果)
        
    CreatePlans --> AddPlan1
    AddPlan1 --> AddPlan2
    AddPlan2 --> AddPlan3
    AddPlan3 --> FilterPlans
    FilterPlans --> PrintFilteredPlans
``