一 max和min
1.Stream上常用的操作之一是求最大值和最小值。StreamAPI中的max和min操作足以解决
这一问题
2.查找Stream中的最大或最小元素,首先要考虑的是用什么作为排序的指标。以查找人名中
的最短人名为例,排序的指标就是人名的长度。
3.为了让Stream对象按照人名长度进行排序,需要传给它一个Comparator对象。Java8提
供了一个新的静态方法comparing,使用它可以方便地实现一个比较器。放在以前,我们
需要比较两个对象的某项属性的值,现在只需要提供一个存取方法就够了。
/**
* @Author yqq
* @Date 2021/4/11 10:04
* @Version 1.0
*/
public class MaxAndMinDemo {
public static void main(String[] args) {
List<People> p1=new ArrayList<>();
p1.add(new People("1","科比",0));
p1.add(new People("2","詹姆斯",0));
p1.add(new People("3","奥拉朱旺",0));
People pMin=p1.stream()
//获取列表中人名最短的名字
.min(Comparator.comparing(p -> p.getName().length()))
//获取列表中人名最长的名字
//.max(Comparator.comparing(p -> p.getName().length()))
.get();
System.out.println("列表中人名最短的人是:"+pMin);
}
}
//列表中人名最短的人是:People(id=1, name=科比, age=0)
4.此外,还可以调用空Stream的max方法,返回Optional对象。Optional对象
它代表一个可能存在也可能不存在的值。如果Stream为空,那么该值不存在,如果不为
空,则该值存在。先不必细究,现在唯一需要记住的
是,通过调用get方法可以取出Optional对象中的值。