Я пытаюсь создать карту хэштегов и сумму соответствующих транзакций.Я начинаю со списка транзакций.Каждый может иметь несколько хэштегов внутри.В convertToSingleHashtagPerTransaction
я извлекаю каждый хэштег и добавляю транзакции в список, чтобы у каждой транзакции был только один хэштег.Затем я группирую по хэштегу и, наконец, хочу избавиться от объекта Transaction и получить карту String (хэштег), Double (сумма соответствующих транзакций).
val hashtagsAmountMap = transactions
.filter { !it.note.isNullOrEmpty() }
.filter { it.note!!.contains(HASHTAG_LEFT_SIDE) }
.flatMap { convertToSingleHashtagPerTransaction(it) }
.groupBy { it.note }
.onEach {
it.value
.map { it.inGlobalCurrency!! }
.sumByDouble { it }
}
private fun convertToSingleHashtagPerTransaction(t: Transaction): List<Transaction> {
val note = t.note
if (note != null) {
return extractHashtags(note)
.map {
t.copy(note = it.toUpperCase())
}
} else {
return arrayListOf()
}
}
В конце концов, я получаю Список вместо Списка.