gpt4 book ai didi

java - 如何在Java中通过多个字段过滤对象列表?

转载 作者:行者123 更新时间:2023-12-01 22:42:09 26 4
gpt4 key购买 nike

我想通过多个字段过滤对象列表,但用于过滤的这些字段可能会发生变化。例如;

假设我们有一个具有一些属性的 Employee 类:

@Data
public class Employee {
private Integer id;
private Integer age;
private String gender;
private String firstName;
private String lastName;

}

编写有时按年​​龄和性别或有时仅按名字过滤的方法的最佳方法是什么? (示例可以复制,即对于这个示例,它有 5 个属性,因此有 5!= 120 种可能性)可以使用 lambda 或 Java 中的其他内容进行编码吗?

附注:任何可能性都没有预先定义。无论来自请求的是什么,它都应该通过它进行过滤。我相信下面的例子可以清楚地说明这个问题:

假设我们有一个与 Employee 具有相同属性的 Filter 对象。如果给出了年龄而其他为空,则此服务将仅按年龄进行过滤。或者只给出性别和名字,它应该按照标准获取员工。

最佳答案

您可能想使用filter 函数。该函数的工作方式是,如果您的表达式计算结果为 true,它将返回到结果流。

示例片段如下:

//Assuming employeeList is an ArrayList of Employee:
employeeList.stream().filter((e) -> e.age>25 && "M".equals(e.gender)); //Gives you a stream with all the male employees older than 25.

这里有一些 reading material为你!特别是“2.3 对于多个条件”。部分。

希望这有帮助!

关于java - 如何在Java中通过多个字段过滤对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58488955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com