我想要的東西,我可以插入鍵/值對,並且順序是我插入的項目。Java集合是有序的按照插入順序
我有看到一些關於地圖的帖子,但似乎我必須爲他們編寫自己的比較器。
我希望我插入的第一個項目是第一個存儲的,第二個是第二個項目的集合等。
我想要的東西,我可以插入鍵/值對,並且順序是我插入的項目。Java集合是有序的按照插入順序
我有看到一些關於地圖的帖子,但似乎我必須爲他們編寫自己的比較器。
我希望我插入的第一個項目是第一個存儲的,第二個是第二個項目的集合等。
嘗試使用LinkedHashMap
,從javadocs:
哈希表和Map接口的鏈接列表實現,具有可預知的迭代順序此實現與HashMap的不同之處在於它維護的雙重鏈接列表中運行的所有條目。這個鏈表定義了迭代排序,這通常是鍵被插入映射的順序(插入順序)。
爲什麼不創建一個class
來包含一個鍵和一個值,然後將它們存儲在您最喜歡的List
實現中?
class Pair {
Key k;
Value v;
}
List<Pair> stuff = new ArrayList<Pair>();
Pair p = new Pair();
...
stuff.add(p);
好像你需要使用一個列表與名稱/值對象
List<NameValuePair> values = new Arraylist<NameValuePair>();
,然後使用列表,你會正常列表
class NameValuePair {
private name;
private value;
... get/set
}
我喜歡LinkedHashMap建議,但是,如果你走這條路線,看看Map.Entry並強烈考慮使用它,而不是定義你自己的NameValuePair類。 – user949300
@ user949300:'Map.Entry
@ruakh查看AbstractMap.SimpleEntry和AbstractMap.SimpleImmutableEntry。 – user949300
LinkedHashMap的是正確的您正在尋找的數據結構類型! 因爲它擴展了HashMap(它允許你在鍵/值對中有一個元素)並且維護一個鏈接列表(它給你插入順序)的條目。
還檢查了以下類型的地圖瞭解更多信息:
https://docs.oracle.com/javase/8/docs/api/
轉到AbstractMap和檢查這些了
的HashMap & TreeMap的
HashTable- http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html
這是稱爲「LinkedHashMap」 –