1

我有一个要过滤的对象列表,然后检索所有不同字符串的列表 2 层嵌套列表。例如,要获取第一个未过滤的结果,我可以这样做:

mainList[0].appliedTo!![0][0]

但是,我希望所有对象的最底层的所有这些字符串都在一个平面列表中。

我有一个解决方案,但绝对感觉不是最理想的:

val myListOfStrings = mainList          // Start with an arraylist
    .filter { it.insertAfter == true }  // Filter the arraylist
    .flatMap { it.appliedTo.orEmpty() } // Flatmap down to a List<List<String>>
    .flatMap { it.orEmpty() }           // Flatmap down to a List<String>
    .distinct()                         // Unique values only

以下是数据结构在 Android Studio 评估器中的外观:

在评估器中预览数据结构

拥有这 4 个运算符似乎有些过分,我真的很想看看这两个flatMaps 是否可以以某种方式结合起来。任何帮助表示赞赏,谢谢!

4

0 回答 0