本文整理了Java中java.util.stream.Stream.reduce()
方法的一些代码示例,展示了Stream.reduce()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Stream.reduce()
方法的具体详情如下:
包路径:java.util.stream.Stream
类名称:Stream
方法名:reduce
[英]Performs a reduction on the elements of this stream, using the provided identity, accumulation and combining functions. This is equivalent to:
U result = identity;
but is not constrained to execute sequentially.
The identity value must be an identity for the combiner function. This means that for all u, combiner(identity, u)is equal to u. Additionally, the combiner function must be compatible with the accumulator function; for all u and t, the following must hold:
combiner.apply(u, accumulator.apply(identity, t)) == accumulator.apply(u, t)
This is a terminal operation.
[中]使用提供的标识、累加和组合函数对此流的元素执行{$0$}。这相当于:
U result = identity;
但不受顺序执行的约束。
标识值必须是组合器函数的标识。这意味着对于所有u,组合器(标识,u)等于u。此外,组合器功能必须与累加器功能兼容;对于所有u和t,必须满足以下条件:
combiner.apply(u, accumulator.apply(identity, t)) == accumulator.apply(u, t)
这是一个terminal operation。
代码示例来源:origin: spring-projects/spring-framework
@Override
public RouterFunction<ServerResponse> build() {
RouterFunction<ServerResponse> result = this.routerFunctions.stream()
.reduce(RouterFunction::and)
.orElseThrow(IllegalStateException::new);
if (this.filterFunctions.isEmpty()) {
return result;
}
else {
HandlerFilterFunction<ServerResponse, ServerResponse> filter =
this.filterFunctions.stream()
.reduce(HandlerFilterFunction::andThen)
.orElseThrow(IllegalStateException::new);
return result.filter(filter);
}
}
代码示例来源:origin: apache/pulsar
@Override
public Integer apply(Collection<Integer> integers) {
return integers.stream().reduce(0, (x, y) -> x + y);
}
}
代码示例来源:origin: hs-web/hsweb-framework
@Override
public int updateByPk(List<E> data) {
return data.stream()
.map(this::updateByPk)
.reduce(Math::addExact)
.orElse(0);
}
代码示例来源:origin: SonarSource/sonarqube
@Override
public Health checkNode() {
return nodeHealthChecks.stream()
.map(NodeHealthCheck::check)
.reduce(Health.GREEN, HealthReducer.INSTANCE);
}
代码示例来源:origin: wildfly/wildfly
public int size() {
lock.lock();
try {
long num=msgs.values().stream().flatMap(Collection::stream).map(Message::size).reduce(0L, (a, b) -> a + b);
return (int)num;
}
finally {
lock.unlock();
}
}
代码示例来源:origin: Vedenin/useful-java-links
Integer sum = collection.stream().reduce((s1, s2) -> s1 + s2).orElse(0); // using stream Api
Integer sumOld = 0; // using Java 7
for(Integer i: collection) {
Integer max1 = collection.stream().reduce((s1, s2) -> s1 > s2 ? s1 : s2).orElse(0); // using stream Api
Integer max2 = collection.stream().reduce(Integer::max).orElse(0); // using stream Api using Integer::max
Integer min = collection.stream().reduce((s1, s2) -> s1 < s2 ? s1 : s2).orElse(0); // using stream Api
Integer last = collection.stream().reduce((s1, s2) -> s2).orElse(0); // using stream Api
Integer sumMore2 = collection.stream().filter(o -> o > 2).reduce((s1, s2) -> s1 + s2).orElse(0); // using stream Api
Integer sumMore2Old = 0; // using Java 7
for(Integer i: collection) {
Integer sumOdd = collection.stream().filter(o -> o % 2 != 0).reduce((s1, s2) -> s1 + s2).orElse(0); // using stream Api
Integer sumOddOld = 0; // using Java 7
for(Integer i: collection) {
int oldMan = peoples.stream().filter((p) -> p.getSex() == Sex.MAN).map(People::getAge).reduce((s1, s2) -> s1 > s2 ? s1 : s2).get();
System.out.println("oldMan = " + oldMan); // print 69
代码示例来源:origin: google/error-prone
private static Optional<Nullness> fromAnnotationStream(Stream<String> annotations) {
return annotations
.filter(ANNOTATION_RELEVANT_TO_NULLNESS)
.map(annot -> NULLABLE_ANNOTATION.test(annot) ? NULLABLE : NONNULL)
.reduce(Nullness::greatestLowerBound);
}
代码示例来源:origin: hs-web/hsweb-framework
public Map<Class<Entity>, MapperEntityFactory.Mapper> createMappers() {
if (mappings == null || mappings.isEmpty()) {
return new java.util.HashMap<>();
}
return mappings.stream()
.map(Mapping::create)
.reduce(MapUtils::merge)
.orElseGet(HashMap::new);
}
代码示例来源:origin: prestodb/presto
private TupleDomain<ColumnHandle> toTupleDomain(Map<TpchColumnHandle, Set<NullableValue>> predicate)
{
return TupleDomain.withColumnDomains(predicate.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, entry -> {
Type type = entry.getKey().getType();
return entry.getValue().stream()
.map(nullableValue -> Domain.singleValue(type, nullableValue.getValue()))
.reduce((Domain::union))
.orElse(Domain.none(type));
})));
}
代码示例来源:origin: spring-projects/spring-framework
/**
* Initialized the router functions by detecting them in the application context.
*/
protected void initRouterFunctions() {
List<RouterFunction<?>> routerFunctions = routerFunctions();
this.routerFunction = routerFunctions.stream().reduce(RouterFunction::andOther).orElse(null);
logRouterFunctions(routerFunctions);
}
代码示例来源:origin: vert-x3/vertx-examples
private Predicate<Transaction> constructFilterPredicate(List<String> from, List<String> to, List<String> message) {
List<Predicate<Transaction>> predicates = new ArrayList<>();
if (from != null) {
predicates.add(transaction -> from.contains(transaction.getFrom()));
}
if (to != null) {
predicates.add(transaction -> to.contains(transaction.getTo()));
}
if (message != null) {
predicates.add(transaction -> message.stream().filter(o -> ((String)o).contains(transaction.getMessage())).count() > 0);
}
// Elegant predicates combination
return predicates.stream().reduce(transaction -> true, Predicate::and);
}
代码示例来源:origin: neo4j/neo4j
@Override
public IndexSample sampleIndex()
{
return indexSamplers.parallelStream()
.map( this::sampleIndex )
.reduce( this::combine )
.get();
}
代码示例来源:origin: SonarSource/sonarqube
public static Facet of(String name) {
return stream(values())
.filter(f -> f.getName().equals(name))
.reduce((a, b) -> {
throw new IllegalStateException("Multiple facets with same name: " + a + ", " + b);
})
.orElseThrow(() -> new IllegalArgumentException(String.format("Facet name '%s' hasn't been found", name)));
}
}
代码示例来源:origin: speedment/speedment
private Stream<Film> serveFilmsWithfunctionalFold(String rating, int page) {
System.out.format("serveFilmsWithfunctionalFold(String rating=%s, int page=%d) %n", rating, page);
return Stream.<UnaryOperator<Stream<Film>>>of(
(s) -> rating == null ? s : s.filter(Film.RATING.equal(rating)),
s -> s.sorted(Film.LENGTH),
s -> s.skip(page * PAGE_SIZE),
s -> s.limit(PAGE_SIZE)
).reduce(
films.stream(),
(s, o) -> o.apply(s),
(a, b) -> a
);
}
代码示例来源:origin: apache/flink
private Optional<Event> verifyWindowContiguity(List<Event> newValues, Collector<String> out) {
return newValues.stream()
.sorted(Comparator.comparingLong(Event::getSequenceNumber))
.reduce((event, event2) -> {
if (event2.getSequenceNumber() - 1 != event.getSequenceNumber()) {
out.collect("Alert: events in window out ouf order!");
}
return event2;
});
}
}
代码示例来源:origin: hs-web/hsweb-framework
protected AccessTokenModel entityToModel(OAuth2AccessToken token) {
AccessTokenModel model = new AccessTokenModel();
model.setAccess_token(token.getAccessToken());
model.setRefresh_token(token.getRefreshToken());
model.setExpires_in(token.getExpiresIn());
if (token.getScope() != null) {
model.setScope(token.getScope().stream().reduce((t1, t2) -> t1.concat(",").concat(t2)).orElse(""));
} else {
model.setScope("public");
}
model.setToken_type("bearer");
return model;
}
代码示例来源:origin: neo4j/neo4j
@Override
public Boolean visitDeclared( DeclaredType declaredType, Void ignored )
{
return allowedTypesValidator.test( declaredType ) &&
declaredType.getTypeArguments().stream().map( this::visit ).reduce( ( a, b ) -> a && b ).orElse( Boolean.TRUE );
}
代码示例来源:origin: shekhargulati/java8-the-missing-tutorial
public String joinAllTaskTitles(List<Task> tasks) {
return tasks.stream().
map(Task::getTitle).
reduce((first, second) -> first + " *** " + second).
get();
}
代码示例来源:origin: neo4j/neo4j
public String description( String text )
{
String wrappedText = wrapText( text, LINE_LENGTH );
if ( namedArgs.isEmpty() )
{
return wrappedText;
}
wrappedText = String.join( NEWLINE + NEWLINE, wrappedText, "options:" );
//noinspection OptionalGetWithoutIsPresent handled by if-statement above
final int alignLength = namedArgs.values().stream()
.map( a -> a.optionsListing().length() )
.reduce( 0, Integer::max );
return String.join( NEWLINE, wrappedText,
namedArgs.values().stream()
.map( c -> formatArgumentDescription( alignLength, c ) )
.collect( Collectors.joining( NEWLINE ) ) );
}
代码示例来源:origin: SonarSource/sonarqube
@Override
public Health check(Set<NodeHealth> nodeHealths) {
Set<NodeHealth> appNodes = nodeHealths.stream()
.filter(s -> s.getDetails().getType() == NodeDetails.Type.APPLICATION)
.collect(toSet());
return Arrays.stream(AppNodeClusterHealthSubChecks.values())
.map(s -> s.check(appNodes))
.reduce(Health.GREEN, HealthReducer.INSTANCE);
}
内容来源于网络,如有侵权,请联系作者删除!