【发布时间】:2018-08-21 18:58:09
【问题描述】:
是否可以根据所需的条件匹配来过滤和映射两个集合,如下所示:
fun main(args: Array<String>) {
val selectedDates = listOf("2018-08-12", "2018-08-13", "2018-08-14")
val expenses = listOf(Expense("Food", "2018-08-12"),
Expense("Transportation", "2018-08-15"),
Expense("Misc.", "2018-08-13"),
Expense("Uber", "2018-08-12"),
Expense("Clothing", "2018-08-16"))
val listOfExpensesInSelectedDate = mutableListOf<Expense>()
for (date in selectedDates){
listOfExpensesInSelectedDate.addAll(expenses.filter { it.date==date })
}
println(listOfExpensesInSelectedDate)
}
data class Expense(
val expense:String,
val date: String
)
提供上面给定的代码,我试图返回与另一个字符串列表中的日期匹配的费用列表。在上面的示例中,我同时使用了 for Loop 和 filter 函数来获得我想要的结果。但是是否可以避免 for 循环和过滤器并在单行代码中映射两个集合?
【问题讨论】:
标签: collections kotlin