如何将函数应用于列表列表

时间:2018-01-20 00:23:38

标签: java kotlin flatmap

我知道flatMap操作,但不完全了解它是如何工作的。

我有一个班级:

class Days() {
  List<Date> dates;
}

然后我有一个这些对象的列表

List<Days> month

我想对此对象中的每个日期执行某些操作(例如将它们转换为字符串),然后返回包含所有这些字符串的单个列表。

如何做到这一点?

2 个答案:

答案 0 :(得分:1)

如果那个Days课程在Kotlin中,你可能不会使dates成为可空。 flatMap调用可以使用简单的函数引用:

class Days(val dates: List<Date> = emptyList())

fun main(args: Array<String>) {
    val manyDays = listOf(Days(), Days())
    manyDays.flatMap(Days::dates).forEach(::println)
}

答案 1 :(得分:0)

我当然在发布之后就知道了,但我想我应该把答案放在这里以防其他人发现这个。

month.flatMap{
  it.dates ?: listOf<Days>() 
}.map{
  //do your work on the objects here
}