我担心我正在开发一个应用程序,我只需要验证来自哈希表的数据。我有 8 个哈希表,我从中获取数据并进行验证。所有 8 个哈希表都具有相同的结构。我的问题是,如果我将数据放入 8 个哈希表中会更有效,还是将其更改为一个哈希表?每个哈希表有大约 100 个对象。
提前致谢。
你的,极客
我担心我正在开发一个应用程序,我只需要验证来自哈希表的数据。我有 8 个哈希表,我从中获取数据并进行验证。所有 8 个哈希表都具有相同的结构。我的问题是,如果我将数据放入 8 个哈希表中会更有效,还是将其更改为一个哈希表?每个哈希表有大约 100 个对象。
提前致谢。
你的,极客
我同意在这种情况下,大小是如此之小以至于微不足道。
也就是说,使用单个哈希表;否则你必须做 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.