常见的映射函数除了 map 外还有3个,如下:
函数 | 适用类型 | 返回数据 | 说明 |
---|---|---|---|
mapNotNull | Collection集合、Map集合或Array数组 | List集合 | 返回一个List集合,该List集合包含对原始集合中非空元素进行转换后的结果。注意Array数组是对象数组,不能是IntArray和FloatArray等基本数据类型数组 |
mapIndexed | Collection集合或数组 | List集合 | 返回一个List集合,该List合集包含对原始集合中每个元素进行转换后的结果和他们的索引 |
flatMap | Collection集合或数组 | List集合 | 扁平化映射,可以将多维数组或集合转换为一维集合 |
- 示例代码如下:
fun main(args: Array<String>?) {
val set = setOf(1, 3, 34, 54, 75)
val charList = listOf("A", null, "b", "c")
println(charList.mapNotNull { it }.map { it.toLowerCase() })
println(set.mapIndexed { index, item -> index + item })
val datas = listOf(listOf(10, 20), listOf(20, 40))
println(datas.flatten())
val flatMapList = datas.flatMap { e -> e.map { it * 10 } }
println(flatMapList)
}
// 输出结果
2019-06-13 18:57:20.298 I: [a, b, c]
2019-06-13 18:57:20.298 I: [1, 4, 36, 57, 79]
2019-06-13 18:57:20.301 I: [10, 20, 20, 40]
2019-06-13 18:57:20.301 I: [100, 200, 200, 400]
网友评论