请问有没有 java list 进行 filter orderby 字段模糊匹配 字段大于小于 大于等于 分页 之类的 一个通用的方法

请问有没有 java list 进行 filter orderby 字段模糊匹配 字段大于小于 大于等于 分页 之类的 一个通用的方法

看下如有帮助给个采纳谢谢

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class ListUtils {

    public static <T> List<T> filterAndSort(List<T> list,
                                            String keyword,
                                            String orderBy,
                                            boolean isAsc,
                                            int pageNumber,
                                            int pageSize) {
        List<T> filteredList = list.stream()
                .filter(item -> item.toString().contains(keyword)) // 模糊匹配
                .filter(item -> isGreaterOrEqual(item, keyword)) // 大于等于
                .filter(item -> isLessOrEqual(item, keyword)) // 小于等于
                .collect(Collectors.toList());

        Comparator<T> comparator = Comparator.comparing(Object::toString);

        if (orderBy.equals("desc")) {
            comparator = comparator.reversed(); // 倒序排序
        }

        filteredList.sort(isAsc ? comparator : comparator.reversed());

        int totalItems = filteredList.size();
        int fromIndex = (pageNumber - 1) * pageSize;
        int toIndex = Math.min(fromIndex + pageSize, totalItems);

        return filteredList.subList(fromIndex, toIndex);
    }

    private static boolean isGreaterOrEqual(Object item, String keyword) {
        // 根据需要自定义判断逻辑
        return true;
    }

    private static boolean isLessOrEqual(Object item, String keyword) {
        // 根据需要自定义判断逻辑
        return true;
    }

    public static void main(String[] args) {
        // 测试
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("pear");
        list.add("orange");
        list.add("kiwi");
        list.add("grape");

        List<String> filteredList = filterAndSort(list, "a", "asc", true, 1, 2);
        System.out.println(filteredList);  
    }
}