Co jest odpowiednikiem wspaniałego foldLeft
Scali w Java 8?Równoważnik składanki Scala w Javie 8
Kusiło mnie, aby pomyśleć, że to był reduce
, ale zmniejszenie musi zwrócić coś identycznego do tego, na co się zmniejsza.
Przykład:
import java.util.List;
public class Foo {
// this method works pretty well
public int sum(List<Integer> numbers) {
return numbers.stream()
.reduce(0, (acc, n) -> (acc + n));
}
// this method makes the file not compile
public String concatenate(List<Character> chars) {
return chars.stream()
.reduce(new StringBuilder(""), (acc, c) -> acc.append(c)).toString();
}
}
Problem w powyższym kodzie jest acc
umulator: new StringBuilder("")
Zatem ktoś może wskazać mi właściwą równowartość foldLeft
/naprawić mojego kodu?
FYI: Nazwa tego języka to "Scala", a nie "SCALA". (Wydaje mi się, że istnieje inny język o nazwie "SCALA", który prawdopodobnie nie jest tym, który masz na myśli.) –
Powiązany http://stackoverflow.com/questions/30736587/builder-pattern-with-a-java-8-stream – Tunaki