2014-02-07 77 views
0
List<Dictionary> DictionaryList= new ArrayList<Dictionary>(); 

我創建了ArrayList對象,我需要用鍵存儲多個名稱,並且想要顯示名稱和鍵。我該怎麼做。請幫我ArrayList對象存儲多個值

+2

爲什麼你不使用地圖來存儲鍵值對?..爲什麼地圖/字典的數組列表? – TheLostMind

+1

http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html? – assylias

+0

你只需要使用正確的數據結構;) – leigero

回答

0

我認爲你正在尋找的對象是地圖

考慮java 7的HashMap

HashMap<String,Value> map = new HashMap<String,Value>(); 
  • 插入的值的對象,在您的實現。

添加一個鍵值對......最關鍵的是你正在使用的價值無論

map.put("name1",23); 

現在讓我們來訪問這些條目的一個

map.get("name1"); // returns 23 

使用參數化的類很簡單一旦你掌握了它的一切。 See the Docs

  • 請確保您使用對象來指定對

  • 所以用這個例子中使用整型()的數字不是整數

我建議HashMap中通過普通地圖。 HashMap實現了提供常量.put()和.get()操作的散列函數。

+0

你對「常規映射」有什麼意義 - 你指的是TreeMap嗎?因爲Map只是一個界面。 –

1

您應該考慮使用Map<K,V>來代替。

考慮你需要一個StringString映射,一個Map可以實例爲:

Map<String, String> mapOfNames = new HashMap<String, String>(); 

的插入是那麼容易,因爲:

mapOfNames.put(key, name); 

和信息檢索:

String name = mapOfNames.get(key); 

現在考慮可能會有多個與相同密鑰關聯的數值,則必須將Map修改爲HashMap<String, List<String>>。也就是說,每個key將對應於list of values

所以定義隨後將是這樣的形式:

Map<String, List<String>> mapOfNames = new HashMap<String, List<String>>(); 

插入:

mapOfNames.get(key).add(name); 

檢索:

List<String> retrievedNamesForKey = mapOfNames.get(key); 

更多HashMaps可以在這裏找到:HashMap (Java Platform SE 7)

+0

關鍵值是唯一的或不是 – Sathesh

+0

@Shehesh:是的,關鍵是獨一無二的。用同一個鍵插入多個值將覆蓋以前插入的值。 – Vishnu

+0

如何防止重寫的價值 – Sathesh