【问题标题】:alternative (ie., better choice) for Hashmap on character字符上 Hashmap 的替代方案(即更好的选择)
【发布时间】:2013-05-17 02:06:32
【问题描述】:

正如EnumMap 是与enum 一起工作时更好的地图选择一样,是否有更好的地图选择(而不是每个人都使用的通用HashMap)来处理角色?

字符有点类似于枚举成员,因为它们的数量是确定的,所以我认为可能有一种“特殊”的地图适合它们?

[编辑] “更好”是指“更快”并使用“更少内存”

【问题讨论】:

  • 据我所知没有更好的选择,但仅使用 HashMap 的缺点是什么?
  • 也许你正在做的一个例子将有助于理解你对“更好的方式”的意思。
  • 更好,我的意思是更快(并且使用更少的内存)
  • 如果您将自己限制在例如ASCII 字符然后你可以使用一个数组(如果你使用 Unicode 字符,你可以做同样的事情,除了数组会非常大)。由于字符具有可比性,因此您可以将它们存储在 TreeMap 中,它比 HashMap 更节省空间,因为没有负载因子,除非以 lg(n) 查找/插入/删除为代价。

标签: java map character enum-map


【解决方案1】:

我想我理解你的问题。如果字符数是有限的,您应该能够节省 Hash map 的大小。

但是你可能忽略了国际化的事情?实际上并没有那么“有限”的字符数。 (真正的 unicode 具有可变长度编码等)所以我怀疑会有一种节约的好方法。

如果您使用特定语言,例如26 个字符,您可以考虑为这项工作制作自己的枚举(或更简单的数组)。如果您寻求独立于 i18n 的答案,我无能为力...

【讨论】:

  • 哦,我知道这是有限数量的字符,因为这是为了处理我们想出的“人工”语言中的固定单词集。所以字母表是已知和固定的
猜你喜欢
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
  • 2015-03-20
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多