如果是对象流,想求某个值最大的
对象
,可以用Collectors
例如:求age最大的猪
对象
,age最小的猪
对象
Optional<Pig> pigMaxAgeOptional = pigs.stream().collect(Collectors.maxBy(comparing(Pig::getAge)));
if (pigMaxAgeOptional.isPresent()){
System.out.println("age最大的猪 = " + pigMaxAgeOptional.get());
Optional<Pig> pigMinAgeOptional = pigs.stream().collect(Collectors.minBy(comparing(Pig::getAge)));
if (pigMinAgeOptional.isPresent()){
System.out.println("age最小的猪 = " + pigMinAgeOptional.get());
结果如下:
age最大的猪 = Pig(id=1, name=猪爸爸, age=31, gender=M, valid=false)
age最小的猪 = Pig(id=3, name=乔治, age=2, gender=M, valid=false)