java8ストリームで出力を操作します

Degth:

5,5,7、8:我々は値として分フィールドで3つのオブジェクトのリストを持っている想像してみて

int sumOfFields = found.stream()
        .filter(abc -> minutesLessThan5(abc.getMinutes())))
        .mapToInt(abc::getMinutes)
        .sum();

// will return 10

しかし、どのように私は私の出力などを変更する代わりに、私は自分の価値例えば40を返すようにしたいgetMinutesことができます

int sumOfFields = found.stream()
        .filter(abc -> minutesLessThan5(abc.getMinutes())))
        .mapToInt(abc ->abc.getMinutes() = 40)  //this is pseudo code what I try to achive
        .sum();

// output should be 80.
また:

そうでもないことを確認人々はこの答えを作った、まだのようにコメントで指摘しなかった理由、あなたはアプローチのいずれかに従うことができます

int sumOfFields = found.stream()
        .filter(abc -> minutesLessThan5(abc.getMinutes())))
        .mapToInt(abc -> 40) // map value to be returned as 40 
        .sum();

またはその代わりに、あなたが一定の値を持つようなすべての値を交換しているので40、あなたも使用することができcount()、一定値とし、乗算ということを。

int sumOfFields = (int) found.stream() // casting from long to int
        .filter(abc -> minutesLessThan5(abc.getMinutes())))
        .count() * 40;

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=208578&siteId=1