想象一下,我們有 3 個(gè)對(duì)象的列表,其值為分鐘字段:5,5,7,8int sumOfFields = found.stream() .filter(abc -> minutesLessThan5(abc.getMinutes()))) .mapToInt(abc::getMinutes) .sum();// will return 10但是我怎樣才能改變我的輸出,例如代替 getMinutes 我想返回我自己的值,例如 40int 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.
1 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
不確定為什么人們沒(méi)有對(duì)此做出回答,但正如評(píng)論中指出的那樣,您可以遵循其中任何一種方法
int sumOfFields = found.stream()
.filter(abc -> minutesLessThan5(abc.getMinutes())))
.mapToInt(abc -> 40) // map value to be returned as 40
.sum();
或者相反,由于您將所有這些值替換為一個(gè)常數(shù)值40,您也可以使用count()并將其與常數(shù)值相乘。
int sumOfFields = (int) found.stream() // casting from long to int
.filter(abc -> minutesLessThan5(abc.getMinutes())))
.count() * 40;
添加回答
舉報(bào)
0/150
提交
取消