在kotlin中的简单列表中转换自定义对象列表

时间:2018-05-01 13:55:49

标签: kotlin

我有一个自定义对象列表。以下是data class

data class ProductsResponse(
        val id:String,
        val ProductType:String
)

我有以下列表:

var productList: List<ProductResponse>

我希望输出为:

var productNameList: List<String>

我想获得一个仅包含ProductType的列表,即list Strings

我知道使用for循环并将ProductType字符串复制到新列表将完成这项工作。但我希望使用Kotlin提供的功能以更短的方式完成。

如何以 Kotlin方式将上述自定义对象list转换为list Strings

3 个答案:

答案 0 :(得分:14)

您可以使用map功能:

val productNameList:List<String> = productList.map { it.ProductType }

这会将每个ProductsResponse映射到它的ProductType。

答案 1 :(得分:5)

val productNameList = productList.map { it.ProductType }

无需指定类型,将推断出

检查Higher-Order Functions and Lambdas

答案 2 :(得分:0)

val productNameList = productList.groupBy {it.ProductType} .keys

这正是您想要的。