这里是根据员工年龄来得到年龄最大的那个对象.(仅适用于JDK1.8及以上)
Employee 是员工类
age 是它的年龄
getAge() 是 age的getter方法
Optional<Employee > userOp= userList.stream().max(Comparator.comparingInt(Employee ::getAge));
Employee maxEmp = userOp.get();
或者:
Optional<Employee > userOp= userList.stream().filter(Objects::nonNull).filter(item -> item.getAge() != null)
.sorted(Comparator.comparing(Employee::getAge).reversed()).findFirst().get();
Employee maxEmp = userOp.get();
避免空指针,添加一个filter,判断age不能为空,
filter(item -> item.getAge() != null)
,或者使用orElse防止空指针。
Optional<Employee > userOp= employees.stream().filter(Objects::nonNull).max(Comparator.comparingInt(Employee ::getAge));
Employee maxEmp = userOp.orElse(new Employee());
09-17日添加:
这些都只是简单的Java8的新特性,具体的可以参考 《Java 8 in Action》,这里不多赘述