2012-09-11 20 views
0

我關心的是,我正在開發一個應用程序,我需要驗證哈希表中的數據。我有8個哈希表,我從他們那裏獲取數據並進行驗證。所有8個哈希表都具有相同的結構。我的問題是,如果我將數據放在8個哈希表中,它會更有效率,還是將其更改爲一個哈希表?每個散列表有大約100個對象。收集效率

在此先感謝。

你的, 野人

+1

效率 - 怎麼樣?甚至沒有足夠的背景來比較碰撞的可能性。 – oldrinb

+2

在任何數據結構中圍繞上百個元素的性能不值得關注。 – cheeken

回答

0

我同意,在這種情況下,規模如此小到可以忽略不計。

也就是說,使用單個哈希表;否則你必須做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. 
+0

我以同樣的方式思考,但我想確認一下。 –