Что такое эквивалент Scala's great foldLeft
в Java 8?Эквивалент foldLeft Scala в Java 8
У меня возникло искушение подумать, что это было reduce
, но у сокращения должно быть что-то похожее на то, что он уменьшает.
Пример:
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();
}
}
Проблема в приведенном выше коде является acc
umulator: new StringBuilder("")
Таким образом, кто-то может мне точку в правильном эквивалент foldLeft
/исправить мой код?
FYI: Название языка «Scala», а не «SCALA». (Я считаю, что существует другой язык под названием «SCALA», который, вероятно, не тот, который вы имеете в виду.) –
http://www.stackoverflow.com/questions/30736587/builder-pattern-with-a-java-8-stream – Tunaki