Java8新特性:排序
package com;
import entity.Employee;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.function.*;
import java.util.stream.Stream;
public class Main {
static List employees = Arrays.asList(
new Employee("aa", 18, 99999.99),
new Employee("bb", 22, 222222.22),
new Employee("cc", 33, 23123.9),
new Employee("dd", 11, 139.99),
new Employee("ee", 23, 929.99),
new Employee("ff", 68, 1000.00)
);
public static void main(String[] args) {
Stream stream = employees.stream();
//Exception in thread "main" java.lang.ClassCastException: entity.Employee cannot be cast to java.lang.Comparable
//报错
// stream.sorted().forEach((x) -> System.out.println(x));
stream.sorted((x,y)->Double.compare(x.getMoney(),y.getMoney())).forEach(System.out::println);
}
}
自然排序 就是 comparable, 要排序的那个类型的类实现 comparable接口。
比如string类:
所以字符串可以进行自然排序。 自然排序是按照compareTo方法就那些排序。
定制排序就是 Comparator排序,lambda中 传一个 Comparator接口。