查找与判断

image1

Filter(predicate pre).findAny() 返回任意一个满足pre的value
Filter(predicate pre).findFirst() 返回第一个满足pre的value
boolean Stream.anyMatch(lambda) 检测流中是否有满足lambda的
boolean Stream.allMatch(lambda)
boolean Stream.noneMatch(lambda)

值得注意的是:
在单线程中, findAny只要找到则停止并且返回该value,
这和findFirst是等效的,
但是并不代表二者毫无差别或说一方多余
在多线程中,findAny可以并行的去寻找流中满足条件的value,找到即停止
而findFirst只能find by turn and one by one

总结:
要性能选findAny() —>高效
要第一个选findFirst()—>符合要求