2013-05-31 28 views
0

擁有屬性爲attr1,attr2,attr3和attr4的類。使用多個鍵在集合中查找對象

我正在尋找一種方式來加載了一堆該類的對象的數組(或ArrayListMap或其他),然後是能夠檢索(搜索)基於attR1位或attR2位這些對象。

看起來要走的路是HashMap但我將不得不:

  1. 如果我想只有一個HashMap,我將有兩個條目爲每個對象,一個與關鍵attR1和一個與關鍵attr2

  2. 有兩個HashMap對象,一個用關鍵字attr1,另一個用關鍵字attr2並根據我正在搜索的內容,使用相應的Map

有沒有其他優雅的方式來做到這一點?有沒有一個MapCollection對象,可以讓我爲對象提供多個鍵?

+0

看看[這個鏈接](http://stackoverflow.com/questions/6768963/multiple-keys-to-single-value-map-java)。這能幫助你嗎? – fvrghl

+0

是否保證每個對象的attr1與其他對象的attr2都不相同?如果不是,你最好使用兩張地圖。 – Vlad

回答

1

我發現第二個解決方案有兩個Map對象,非常優雅,每個Map都是一種數據索引。如果你真的想要一個單一的結構,那麼你可以使用Guava的Table,他將值映射到一對鍵。