less bb, look code
private static void streamMax() {
Student zs = new Student();
zs.setName("张三(11)");
zs.setAge(28);
Student zsf = new Student();
zsf.setName("张三丰(66)");
zsf.setAge(68);
Student zuj = new Student();
zuj.setName("张无忌(98");
zuj.setAge(38);
List<Student> list = Arrays.asList(zs, zsf, zuj);
// 取名字最大编号
Optional<Student> studentOptional = list.stream().filter(userFilter -> {
String name = userFilter.getName();
return name.contains("(") && name.contains(")");
}).max(Comparator.comparing(student -> {
String name = student.getName();
String strNum = name.substring(name.indexOf("(") + 1, name.indexOf(")"));
return Integer.parseInt(strNum);
}));
studentOptional.ifPresent(student -> {
System.out.println(student.getName());
});
// 取年龄最大
Optional<Student> ageMax = list.stream().max(Comparator.comparing(Student::getAge));
ageMax.ifPresent(student -> {
System.out.println(student.getAge());
});
}