2011-03-24 80 views
0

我的要求是我正在爲WP7做一個應用程序,所以我必須照顧對象的內存消耗。我有大約1000條記錄對硬編碼數據的數據。所以字典將比二維數組容易訪問,但它比二維數組消耗更多的內存。另外哪些在搜索中會很快。雅我知道搜索將很快在字典中,我們可以很容易地通過給定的關鍵字獲得相應的鍵的值,但它是在內部做線性搜索。使用字典比2D數組需要更多的內存嗎?

+1

字典通常在內部使用散列表進行近O(1)查找,忽略散列碼衝突。它沒有爲查找鍵的值進行「線性搜索」。 – DTing 2011-03-24 07:55:18

回答

3

前進用字典。 1000條記錄不是很多。而在字典搜索的代碼是非常簡單的:

var val = dict[key]; 

而在二維數組搜索代碼,以及。你排序你的陣列?這可能會加快查找速度。但也比線性搜索更復雜。然後你需要確保排序的屬性保持不變。

哦,然後你將不得不維護另一個查找實現。

不要去那裏!

當你用完內存時,也許你可以開始考慮優化字典到其他結構。但是你不會耗盡內存。 YAGNI。

+1

您需要確保鍵(即排序屬性)對於字典也保持不變。 – mgronber 2011-03-24 08:05:36

+0

如果沒有記錄超過8000,該怎麼辦?你能告訴我使用字典有什麼缺點嗎? – rubyraj 2011-03-25 11:22:08

相關問題