排序
方法 | 描述 |
---|---|
sorted() | 产生一个新流,其中按自然顺序排序 |
sorted(Comparator com) | 产生一个新流,其中按比较器顺序排序 |
//3-排序
@Test
public void test3(){
// sorted()——自然排序 默认为升序
List<Integer> list = Arrays.asList(12, 43, 65, 34, 87, 0, -98, 7);
list.stream().sorted().forEach(System.out::println);
//抛异常,原因:Employee没有实现Comparable接口
// List<Employee> employees = EmployeeData.getEmployees();
// employees.stream().sorted().forEach(System.out::println);
// sorted(Comparator com)——定制排序
//提取出数据
List<Employee> employees = EmployeeData.getEmployees();
//将数据中变量进行排序(类似冒泡排序思路)
employees.stream().sorted( (e1,e2) -> {
//比较 两个年龄的大小
int ageValue = Integer.compare(e1.getAge(),e2.getAge());
//如果不等于0, 返回当前值
if(ageValue != 0){
return ageValue;
}else{
//否则,比较两个值的薪资, 从大到小排序 (降序)
return -Double.compare(e1.getSalary(),e2.getSalary());
}
}).forEach(System.out::println);
}