收集效率

时间:2012-09-11 02:42:01

标签: java android performance collections

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

提前致谢。

此致, 极客

1 个答案:

答案 0 :(得分:0)

我同意在这种情况下,尺寸是如此之小,以至于无关紧要。

也就是说,使用单个哈希表;否则你必须做8次检查才能找到一些东西,并且有8个哈希表结构的开销(按照定义,这对于用来表现良好的插槽有开销)。

如果您使用原始类型(或者甚至只是地图中键的原始类型),我强烈推荐使用特洛伊高性能集合库(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.