Scalaの偉大なfoldLeft
のJava 8に相当するものは何ですか?JavaでScalaのfoldLeftに相当するもの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」です。 (私はおそらくあなたが意味するものではない "スカラ"と呼ばれる別の言語があると信じています) –
関連http://stackoverflow.com/questions/30736587/builder-pattern-with-a-java-8-stream – Tunaki