kotlin将对象转换为map_关于词典:如何在Kotlin中将List转换为Map?

例如,我有一个字符串列表,比如:

val list = listOf("a","b","c","d")

我想把它转换成一个映射,其中字符串是键。

我知道我应该使用.toMap()函数,但我不知道该如何使用,而且我没有看到它的任何例子。

你的问题需要澄清。不能只有一个键列表来创建地图。从你自己的答案中,你会列出一些其他的问题,因此你的问题应该调整到匹配,成为一个现实的问题。我做了一个建议的编辑。

您有两个选择:

第一个也是最具性能的是使用associateBy函数,它使用两个lambda来生成键和值,并在创建映射时输入:

val map = friends.associateBy({it.facebookId}, {it.points})

第二个性能较差的功能是使用标准的map函数创建一个Pair列表,该列表可由toMap用于生成最终映射:

val map = friends.map { it.facebookId to it.points }.toMap()

谢谢您。它是否更快,因为它创建了一个映射,而不是像在我的示例中那样将成对列表转换为映射?

@Lordscone确切地说,Pair实例的分配对于大型集合来说可能非常昂贵。

1。从List到map具有associate功能

对于kotlin 1.3,List有一个称为associate的函数。associate声明如下:

fun Iterable.associate(transform: (T)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值