Что эквивалентно Scala great foldLeft
в 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
/fix my?