Java Stream流对多个字段动态指定字段排序

    Java 8 的 Stream 使用了函数式编程模式,它可以被用来对集合或数组进行链状流式的排序就需要搬出Stream sort方法进行排序,重写其中的Comparator。

  本文重点介绍使用Java Stream流排序器Comparator对List集合进行排序的技巧,包括复杂实体对象多字段升降序排序方法。


1为什么采用函数式编程

     函数式编程(Functional Programming)是把函数作为基本运算单元,函数可以作为变量,可以接收函数,还可以返回函数。对函数实例的变量引用,就像对字符串、Map 或任何其他对象的引用一样。函数也可以作为参数传递给其他函数。

     利用Function把Java类中的get方法转换成Function形式,  用全局Map进行储存

    static public Map functionMap = new HashMap<>();
     void init(T t) {
        for (Method temp : t.getClass().getMethods()) {
            String aaaa = temp.getName();
            if (aaaa.startsWith("get")) {
                System.out.println(aaaa);
                String fieldName = aaaa.split("get")[1];
                Function keyExtractosss11 = (a) -> {
                    try {
             

你可能感兴趣的:(原创专栏,排序)