【问题标题】:Convert LinkedHasSet from one type to another将 LinkedHasSet 从一种类型转换为另一种
【发布时间】:2021-01-21 12:37:55
【问题描述】:

我有一个非常简单的问题,我需要将包含一种对象的LinkedHashSet 转换为另一种。

所以基本上我想做的是这样的(如果 map 可以返回 TypeB 以外的任何东西:

LinkedHashSet<TypeA> firstSet

LinkedHashSet<TypeB> secondSet = firstSet.map {
   TypeB(firstSet.value1, firstSet.value2)
}

这主要是为了表明我想要实现的目标,当然它不起作用。有人可以帮我用 Kotlin 写这个吗?

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    map 返回一个List,但您可以使用mapTo 将结果元素直接插入到您作为第一个参数提供的集合中。该集合也被返回,因此您可以将其分配给secondSet

    val secondSet: LinkedHashSet<TypeB> = firstSet.mapTo(LinkedHashSet<TypeB>()) {
       TypeB(it.value1, it.value2)
    }
    

    这比使用map 更有效,因为它避免了创建中间List 来保存结果。

    【讨论】:

      猜你喜欢
      • 2011-09-24
      • 1970-01-01
      • 2012-03-28
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      相关资源
      最近更新 更多