4
考慮這個例子:我有一個RangeSet列表,其中包含例如時間戳。我想得到使用java8流的範圍的總持續時間,而不是命令的方式:有沒有辦法通過流API將對象列表「擴展」爲更大的列表?
// "list" is List<RangeSet<Long>>
long totalTime = list.stream()
.expand(rangeset -> rangeset.asRanges())
.map(range -> range.upperEndpoint() - range.lowerEndpoint())
.reduce(0, (total, time) -> total + time);
「擴展」當然不存在;它的想法是將流中的每個單個對象轉換爲其他對象的列表,並將該列表添加到結果流中。
是否有類似的東西,或其他方式流利地做到這一點?
'list.stream()flatMap(rangeset - > rangeset.asRanges()流()。)mapToInt(範圍 - > range.upperEndpoint() - range.lowerEndpoint())。總和() ' – Holger