您可以通过以下方式实现它:
- 遍历
Round
的list
- 从
Round
对象更改为List<Hit> hits
, - 使用
flatMap
从去Stream<List<Hits>>
到Stream<Hits>
- 从转换
Hits
到其prizeAmount
领域 - 得到
max
如果存在 - 如果没有最大值(如列表为空或其他),则返回
-1
所以使用
Method reference
int maxPrize = arrRoundarrRound.stream()// Stream<Round> .map(Round::getHits)// Stream<List<Hits>> .flatMap(List::stream) // Stream<Hits> .mapToInt(Hit::getPrizeAmount) // IntStream .max() // OptionalInt .orElse(-1); // int
lambda和
map + flatMap一个:
int maxPrize = arrRoundarrRound.stream() .flatMap(round -> round.getHits().stream()) .mapToInt(hits -> hits.getPrizeAmount()) .max() .orElse(-1);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)