0
点赞
收藏
分享

微信扫一扫

Java list filter 动态多个条件

RJ_Hwang 2024-05-10 阅读 24

如何实现Java list filter 动态多个条件

步骤概述

首先,我们需要创建一个方法,该方法接受一个List和一个Predicate集合作为参数,然后根据Predicate集合中的条件对List进行过滤。

流程图

gantt
    title Java list filter 动态多个条件
    section 实现步骤
    创建方法: done, 2023-10-01, 1d
    遍历Predicate: done, after 创建方法, 1d
    应用Predicate: done, after 遍历Predicate, 1d

代码实现

创建方法

首先,我们需要创建一个方法,该方法接受一个List和一个Predicate集合作为参数,然后根据Predicate集合中的条件对List进行过滤。

public static <T> List<T> filterList(List<T> list, List<Predicate<T>> predicates) {
    List<T> filteredList = new ArrayList<>();
    for (T item : list) {
        boolean isValid = true;
        for (Predicate<T> predicate : predicates) {
            if (!predicate.test(item)) {
                isValid = false;
                break;
            }
        }
        if (isValid) {
            filteredList.add(item);
        }
    }
    return filteredList;
}

遍历Predicate

接下来,在主程序中遍历Predicate集合,将要应用的条件逐一添加到集合中。

List<Predicate<String>> predicates = new ArrayList<>();
predicates.add(str -> str.startsWith("A")); // 添加以"A"开头的条件
predicates.add(str -> str.length() > 5); // 添加长度大于5的条件

应用Predicate

最后,调用创建的filterList方法,传入要过滤的List和Predicate集合,获得过滤后的结果。

List<String> list = Arrays.asList("Apple", "Banana", "Orange", "Grape", "Pineapple");
List<String> filteredList = filterList(list, predicates);
System.out.println(filteredList);

总结

通过以上步骤,我们成功实现了Java list filter 动态多个条件的功能。希望这篇文章对你有所帮助,如果还有其他问题,欢迎随时向我提问。祝你在编程的道路上越走越远!

举报

相关推荐

0 条评论