【发布时间】:2014-12-28 09:07:53
【问题描述】:
以前可能有人问过,但我一次又一次地遇到这种情况,我想存储非常少量的属性,我绝对肯定永远不会超过 20 个键。一开始就使用 HashMap 似乎完全浪费了 CPU 和内存,而且为每个键查找计算高级哈希值的性能也很差。如果只有
有关于过早优化的讨论,但我不完全同意这里。我主要使用 Android,任何额外的 CPU/内存都会为其他东西选择更多汁液。这里不一定要谈消费市场。此外,这里的用例定义非常明确,变化不大;用 HashMap 替换一个非常便宜的映射是微不足道的,以防万一(永远不会发生的事情)突然有大量的新键。
所以,我的问题是;哪个是我可以在 Java 中使用的最便宜、最基本的 Map?
【问题讨论】:
-
只使用数组怎么样?
-
@hatchet 它不会比
HashMap更有效(也就是说,它包含一个数组)并且不可读,特别是如果数组没有完全填充 -
@Dici - 5 个元素?好像把你的车开到车道上 30 英尺去取你的邮件。如果 OP 既担心空间成本又担心时间成本,那么数组将赢得空间,并且在时间上无法区分,但也很可能更快。
-
@hatchet 他可以玩初始容量和负载系数。与他手动使用数组时必须编写的代码的丑陋相比,这么小的开销不算什么
-
这可能毫无意义,因为说实话,我很难相信它在你的应用程序中真的很重要。如果没关系,可读性/可维护性获胜。我同意@Dici。
标签: java performance map key