在Java中,我正在尋找一種將多個鍵映射到相同值的方法。比方說,我有數字0-9的按鍵,而「x」,「y」和「Z」的值如下:用於將多個鍵映射到相同值的Java數據結構
0->y
1->y
2->y
3->x
4->x
5->y
6->z
7->y
8->z
9->z
現在x,y和z是很長的字符串,我有數百萬個密鑰,所以我無法多次存儲這些字符串。你會怎麼做呢?
我想到的一個想法是創建兩個數組:生成一個人爲的第二個鍵,將原始鍵映射到該鍵,而另一個數組中的鍵是實際值的關鍵。這樣,該值僅存儲一次和原始關鍵仍然可以間接地映射到值:
0->k1
1->k1
2->k1
3->k2
4->k2
5->k1
6->k3
7->k1
8->k3
9->k3
k1->y
k2->x
k3->z
問題,但:有沒有更好的數據結構呢?
這很有道理。謝謝。 – eikes 2010-06-15 15:32:07
+1 for'intern()' – 2010-06-15 23:07:17
皮特,夠公平的。我真的沒有時間寫一篇論文,所以我剛剛刪除了評論。 – 2010-06-17 21:52:42