使用 Kotlin,我如何將 a Sequenceof detail 物件轉換為 a Sequenceof summary 物件,其中每個匯總物件代表固定數量的詳細物件?這有點像map,除了它不是一對一的,而且有點像,reduce除了它不是單個累加器?
例如:
var hourlyInfo: Sequence<HourlyData> = ...
var dailyInfo: Sequence<DailySummary> = hourlyInfo.somethingMagical()
流而不是序列的相同問題怎么樣?
uj5u.com熱心網友回復:
如果有已知固定數量的專案,則使用chunked然后映射。當序列被迭代時,每個專案塊的實際串列將被分配。
var dailyInfo: Sequence<DailySummary> = hourlyInfo
.chunked(12)
.map(::DailySummary) // for example if it has a constructor taking a List of 12 HourlyData
如果 HourlyData 串列未排序,或者沒有固定大小,那么我想您必須按 HourlyData 中的某些屬性進行分組,然后對其進行映射。這不會保留序列狀態。
var dailyInfo: Sequence<DailySummary> = hourlyInfo
.groupBy(HourlyData::hourOfDay)
.map { (hour, listOfHourlyData) -> DailySummary(hour, listOfHourlyData) }
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/312836.html
上一篇:如何在AndroidviewModels中使用setOnClickLisenter?
下一篇:將空變數傳遞給第二個活動的意圖
