我有一个要过滤的对象列表,然后检索所有不同字符串的列表 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 个运算符似乎有些过分,我真的很想看看这两个flatMap
s 是否可以以某种方式结合起来。任何帮助表示赞赏,谢谢!