科特林地图:为什么没有toHashMap()?

热键

在Kotlin中,Map类具有toLinkedMap()toSortedMap()扩展方法。

但是为什么没有toHashMap()方法呢?实际上,Map许多stdlib方法的最终实现是LinkedHashMap,但是将其强制转换为HashMap我的代码会使我依赖不好的实现。

引入这种方法将使开发人员免于深入研究实现,而对于当前的实现,它将仅执行强制转换。

我的用例是:

val matchesInClass: HashMap<MessageClass, HashMap<Int, Int>>

//...

for ((cl, matches) in matchesInClass) {
    matchesInClass[cl] = matches.filterKeys { it !in banned } //error: not a HashMap
}

当我使用HashMap(matches.filterKeys { it !in banned })它会导致创建新地图的开销,我很乐意避免。

那么,是设计使然吗?

沃丹

我同意stdlib中的这个位置不方便。但是您如何实现这样的功能toHashMap()

as HashMap如果基础地图是HashMap,则最简单的实现进行转换,否则进行转换。因此,在更改实现的情况下,该代码的性能将发生巨大变化。那很糟。

因此,恕我直言,我更喜欢不安全的投射,如果stdlib以一种奇怪的方式进行更改,它会失败并提醒我。

无论如何,始终欢迎您在YouTrack http://youtrack.jetbrains.com/issues/KT中以票证形式报告此问题您在这里对问题做了漂亮的描述,因此不应该花很长时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用运算符的科特林地图

来自分类Dev

用类作为键的科特林地图?

来自分类Dev

为什么我的地图没有更新?

来自分类Dev

为什么我要在一个空科特林功能,从Java调用时,并没有返回null Unit.INSTANCE?

来自分类Dev

为什么我必须投在科特林而不是Java?

来自分类Dev

为什么不能使用变量?[科特琳]

来自分类Dev

为什么两种类型在科特林ReadFile和字符串之间有什么不同?

来自分类Dev

为什么我没有从“反应传单”中导出“地图”?

来自分类Dev

为什么我的Google地图上的路线没有显示

来自分类Dev

为什么scala地图上没有::运算符?

来自分类Dev

为什么谷歌地图上没有显示多个标记

来自分类Dev

为什么我的地图类型没有被 Reason 导出?

来自分类Dev

为什么地图功能没有完成它的执行

来自分类Dev

为什么我的地图没有正确排序?

来自分类Dev

科特林FlatMap-地图

来自分类Dev

在地图科特林合并值

来自分类Dev

从科特林的地图中获取价值

来自分类Dev

为什么在没有引发异常的情况下杰斯特说有断言调用?

来自分类Dev

有没有申报的Java方法中缀了科特林方式

来自分类Dev

有没有办法在科特林继承构造函数?

来自分类Dev

为什么这个代码挑科特林(安卓)错DAYOFMONTH?

来自分类Dev

为什么是调用put()未在科特林编译时,用Java编译类似的代码

来自分类Dev

为什么科特林使用==进行结构相等,并介绍===为参考平等

来自分类Dev

科特林错误的推论为空性没有任何仿制药

来自分类Dev

科特林:如何使用HTML转换数字串来串没有HTML数

来自分类Dev

为什么我的OpenLayers 3地图没有显示在Internet Explorer 11中?

来自分类Dev

为什么我的地图视图没有使用约束来全屏显示?

来自分类Dev

为什么使用地图后我的组件没有更新?

来自分类Dev

为什么我的地图没有显示在我的联系页面上?

Related 相关文章

  1. 1

    使用运算符的科特林地图

  2. 2

    用类作为键的科特林地图?

  3. 3

    为什么我的地图没有更新?

  4. 4

    为什么我要在一个空科特林功能,从Java调用时,并没有返回null Unit.INSTANCE?

  5. 5

    为什么我必须投在科特林而不是Java?

  6. 6

    为什么不能使用变量?[科特琳]

  7. 7

    为什么两种类型在科特林ReadFile和字符串之间有什么不同?

  8. 8

    为什么我没有从“反应传单”中导出“地图”?

  9. 9

    为什么我的Google地图上的路线没有显示

  10. 10

    为什么scala地图上没有::运算符?

  11. 11

    为什么谷歌地图上没有显示多个标记

  12. 12

    为什么我的地图类型没有被 Reason 导出?

  13. 13

    为什么地图功能没有完成它的执行

  14. 14

    为什么我的地图没有正确排序?

  15. 15

    科特林FlatMap-地图

  16. 16

    在地图科特林合并值

  17. 17

    从科特林的地图中获取价值

  18. 18

    为什么在没有引发异常的情况下杰斯特说有断言调用?

  19. 19

    有没有申报的Java方法中缀了科特林方式

  20. 20

    有没有办法在科特林继承构造函数?

  21. 21

    为什么这个代码挑科特林(安卓)错DAYOFMONTH?

  22. 22

    为什么是调用put()未在科特林编译时,用Java编译类似的代码

  23. 23

    为什么科特林使用==进行结构相等,并介绍===为参考平等

  24. 24

    科特林错误的推论为空性没有任何仿制药

  25. 25

    科特林:如何使用HTML转换数字串来串没有HTML数

  26. 26

    为什么我的OpenLayers 3地图没有显示在Internet Explorer 11中?

  27. 27

    为什么我的地图视图没有使用约束来全屏显示?

  28. 28

    为什么使用地图后我的组件没有更新?

  29. 29

    为什么我的地图没有显示在我的联系页面上?

热门标签

归档