首页 文章

Kotlin - 排序 Map 集合

提问于
浏览
2

我有一个功能

fun init(properties: Collection<Map<Any, Any>>?) {
 properties?.
        filter { it.isNotEmpty() }?.
}

1)我需要过滤空值 . 2)我只需要Map所有键和值为String . 3)对于我想要的每个剩余 Map :每个 Map 中的每个键都获得一个值 .

我怎么能这样做对不起,我是Kotlin的新人 .

1 回答

  • 1

    您可以使用.all检查所有.keys.values是否为字符串:

    properties
        ?.filter { 
            it.isNotEmpty() && 
            it.keys.all { key -> key is String } && 
            it.values.all { value -> value is String }
        }
        ?.forEach { /* do some stuff with it */ }
    

    请注意,您仍然需要未经检查的强制转换才能对过滤后的映射进行 Map<String, String> 操作,因为编译器无法从键和值检查中推断出类型 .

相关问题