作者:my小甜心 | 来源:互联网 | 2023-02-12 18:01
在Scala中,它只是map
功能.例如,如果hashMap是字符串的hashMap,那么您可以执行以下操作:
val result : HashMap[String,String] = hashMap.map(case(k,v) => (k -> v.toUpperCase))
但是,在Kotlin中,map
将地图转换为列表.在Kotlin有同样的方式做同样的事情吗?
1> James Basset..:
我不认为一个人的意见是惯用的,但我可能会使用
// transform keys only (use same values)
hashMap.mapKeys { it.key.toUpperCase() }
// transform values only (use same key) - what you're after!
hashMap.mapValues { it.value.toUpperCase() }
// transform keys + values
hashMap.entries.associate { it.key.toUpperCase() to it.value.toUpperCase() }
这也是我要做的,尽管如果仅转换值,则可以使用`mapValues`代替(例如`hashMap.mapValues {it.value.toUpperCase()}`),但我个人不喜欢`签名mapValues`因为它使用`transform:(Map.Entry
)-> R`而不是`transform:(V)-> R`在我看来这与`filterValues(predicate:(V) ->布尔型)`意味着您不能编写`hashMap.mapValues(String :: toUpperCase)`,所以我只使用`hashMap.entries.associate {...}`。