标识值是这样的值
x op identity =x。这是Java所独有的概念,
Stream例如,参见Wikipedia。
它列出了身份元素的一些示例,其中一些可以直接用Java代码表示,例如
reduce("", String::concat)
reduce(true, (a,b) -> a&&b)
reduce(false, (a,b) -> a||b)
reduce(Collections.emptySet(), (a,b)->{ Set<X> s=new HashSet<>(a); s.addAll(b); return s; })
reduce(Double.POSITIVE_INFINITY, Math::min)
reduce(Double.NEGATIVE_INFINITY, Math::max)
应当清楚的是,仅当满足时,才能满足
x + y == x任意表达式,因此是加法的标识元素。同样,是用于乘法的标识元素。
x``y==0``0``1
更复杂的例子是
减少谓词流
reduce(x->true, Predicate::and)
reduce(x->false, Predicate::or)
减少功能流
reduce(Function.identity(), Function::andThen)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)