2016-01-01 11 views
0

我有一個ArrayList的關鍵值列表中獲取價值的最佳方法:哪個集合如下圖所示,從包含在Android的

Id1, value1 
Id1, value2 
Id2, value1 
Id2, value2 
Id2, value3 
Id3, value1 
Id3, value2 
Id3, value3 
Id3, value4 
Id3, value5 

等等

在I類有值id 。我必須獲取對應於id值的值。例如,如果我給id1,那麼我需要value1和value2。我應該使用哪種收集機制來實現我的目標。我是初學者,請建議我。提前致謝。所有建議都歡迎。

+0

嘗試使用HashMap的 –

+0

好吧,我會用HashMap集合。後來HaspMap的哪個方法會很有用,所以當我給出一個Id值時,我應該從集合中獲得相應的值。 – Kiran

回答

1

假設鑰匙是String類型和值String類型。您可以使用Map<String, List<String>>

對於每個id將值存儲在列表中,因此當您查找id時,可以檢索所有值。

這裏是代碼片段,它首先檢查鍵是否已經存在,如果沒有,則創建新的空列表。這些值被添加到列表並放入地圖。您可以使用get(Key) api從地圖中檢索值。

public void add(String key, String value) { 
    List<String> values = map.get(key); 
    if (values == null) { 
    values = new ArrayList<String>(); 
    } 
    values.add(value); 
    map.put(key, values); 
} 
+0

感謝您的快速回復,我的ID是字符串值,我將有數組列表。我必須將id傳遞給一個方法,並且必須獲取包含該鍵的值的列表。你能解釋一下怎麼做? – Kiran

+0

我想這已經在這裏解釋。使用'String'而不是'Integer'作爲鍵。我也更新過。 – YoungHobbit

+0

在add方法中,我們將值添加到列表右側?我們會用相同的方法得到關鍵值的值。如果我錯了,請糾正我。我沒有理解add方法中的String參數。 – Kiran

相關問題