java Lambdasを使用してどのように配列の製品を取得しますか?java Lambdasを使用したリストの製品を取得
result = array.Aggregate((a, b) => b * a);
編集:質問がより明確になる私は、C#で、それはこのようなものです知っています。
java Lambdasを使用してどのように配列の製品を取得しますか?java Lambdasを使用したリストの製品を取得
result = array.Aggregate((a, b) => b * a);
編集:質問がより明確になる私は、C#で、それはこのようなものです知っています。
list.stream().reduce(1, (a, b) -> a * b);
あなたはので、ここで、配列やリストの両方を言及は、両方のためにそれを行うだろうかです:
Integer intProduct = list.stream().reduce(1, (a, b) -> a * b);
Integer intProduct = Arrays.stream(array).reduce(1, (a, b) -> a * b); // Integer[]
int intProduct = Arrays.stream(array).reduce(1, (a, b) -> a * b); // int[]
リスト/配列が空であるかもしれない場合、バージョンは1つの欠点を持っていること:最初の引数、など、リストや配列が空の場合、この場合1
は、結果として返されますので、あなたはその行動をしたくない場合は、Optional<Integer>
を返しますバージョンがあり、OptionalInt:
Optional<Integer> intProduct = list.stream().reduce((a, b) -> a * b);
Optional<Integer> intProduct = Arrays.stream(array).reduce((a, b) -> a * b); // Integer[]
OptionalInt intProduct = Arrays.stream(array).reduce((a, b) -> a * b); // int[]
このオペラティ「削減」と呼ばれます。チュートリアル:https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html – dnault