2012-07-16 66 views
-3

我需要一個Java結構,它可以存儲所有國家的列表。你會推薦哪種Java數據結構?如何在Java中存儲國家列表

+5

http://www.java2s.com/Code/Java/I18N/Getalistofcountrynames.htm – JonH 2012-07-16 19:43:20

+3

這取決於很多您需要該國家/地區列表的目的。 – dasblinkenlight 2012-07-16 19:45:12

回答

2

您可以使用Set集合實現,如HashSet避免重複(如果只是名稱)。如果你想保留國家代碼和名稱,那麼可能是Map集合。

0

您應該使用一個HashSet,它提供了集合中元素的唯一性和密鑰搜索的常量時間。

0

嘗試使用Dictionary<k,v>,我推薦它

+0

Java中的Dictonary不可鼓勵。 HashMap是要走的路。 – Lopina 2012-07-16 20:16:57

+0

什麼是關鍵和價值? – 2012-07-16 20:20:22

+0

您可以將國家/地區代碼作爲「美國」,「CA」和價值國家/地區名稱 – 2012-07-17 07:49:04

2

你要遍歷集合? 如果是這樣,java.util.ArrayList。

你打算用它做一些查找嗎?像'這是否存在'情景? 如果是這樣,java.util.HashSet

您是否需要將附加信息附加到每個國家? 如果是這樣,java.util.HashMap

你需要查找和有序的迭代? 如果是這樣,java.util.TreeSet。

還有一些需要關注的併發症,但我沒有看到任何提及,所以我會放棄這些人。

0

我認爲一個HashSet應該是合適的,只要你不希望有重複。 HashSets提供恆定的時間查找,這將加快搜索速度。如果您期望數據結構被多個線程訪問和修改,您可以考慮其他線程安全變體,如Collections.SynchronizedSet或CopyOnWriteArrayList。您需要提供關於用例的更多詳細信息以縮小您的選項範圍

0

最近我做了非常類似的事情,因爲我的應用程序中有語言列表。我只是使用一個枚舉來做到這一點。國家名單是相當穩定的,所以你不應該需要重新編譯這個類往往;)