Java 8 的 Stream 使用了函数式编程模式,它可以被用来对集合或数组进行链状流式的排序就需要搬出Stream sort方法进行排序,重写其中的Comparator。
本文重点介绍使用Java Stream流排序器Comparator对List集合进行排序的技巧,包括复杂实体对象多字段升降序排序方法。
1为什么采用函数式编程
函数式编程(Functional Programming)是把函数作为基本运算单元,函数可以作为变量,可以接收函数,还可以返回函数。对函数实例的变量引用,就像对字符串、Map 或任何其他对象的引用一样。函数也可以作为参数传递给其他函数。
利用Function把Java类中的get方法转换成Function形式, 用全局Map进行储存
static public Map<String, Function> functionMap = new HashMap<>();<T> 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 {