【问题标题】:Collection efficiency [closed]收集效率[关闭]
【发布时间】:2012-09-03 22:17:13
【问题描述】:

我担心我正在开发一个应用程序,我只需要验证来自哈希表的数据。我有 8 个哈希表,我从中获取数据并进行验证。所有 8 个哈希表都具有相同的结构。我的问题是,如果我将数据放入 8 个哈希表中会更有效,还是将其更改为一个哈希表?每个哈希表有大约 100 个对象。

提前致谢。

你的, 极客

【问题讨论】:

  • 效率——如何?甚至没有足够的上下文来比较碰撞的可能性。
  • 在任何数据结构中围绕一百个元素运行的性能都不值得您关心。

标签: java android performance collections


【解决方案1】:

我同意在这种情况下,尺寸小到可以忽略不计。

也就是说,使用单个哈希表;否则,您必须进行 8 次检查才能找到某些内容,并且需要 8 个哈希表结构的开销(根据定义,这些结构对用于执行良好的插槽有开销)。

如果您使用原始类型(或者甚至只是原始类型作为映射中的键),我强烈推荐 trove 高性能集合库 (GNU Trove)。它们是为高性能计算而编写的,在像 android 这样的环境中可以为您节省宝贵的内存和计算周期。

它们不是完全的替代品,但具有类似的功能......例如

TLongObjectHashMap<String> myMap; // a map from primitive long to strings 
myMap = new TLongObjectHashMap<String>();
myMap.put(4L, "Hello world"); // no boxing, so much less memory overhead, etc.

【讨论】:

  • 我也是这么想的,但我想确认一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
相关资源
最近更新 更多