2014-01-21 73 views
0

如何獲取子列表?映射子表中的HashMap

Map<String, HashMap<String, String>> 

我曾嘗試:

Collections.list(Collections.enumeration(myMap.values())).subList(from,too) 

UPD: 方法只返回List<HashMap<String, String>>。但我需要List<String, HashMap<String,String>>

+3

你的意思是什麼不起作用? –

+0

你期望的結果是什麼? 「HashMap」沒有定義的順序,因此使用地圖中的值填充列表並選擇子列表會給您帶來任意結果。 – dimo414

+0

方法僅返回List >。但是我需要List > – AkiraYamaokaNC

回答

2

您可能需要使用Map.entrySet(),而不是Map.values()。它將提供一組鍵值對,這就是你想要的。

如果您希望條目按您插入的順序排列,請使用LinkedHashMap而不是HashMap。

此外,不重要的是,考慮擺脫枚舉,並只使用new ArrayList(myMap.entrySet())

+0

它的工作原理。你是天才。 :) – AkiraYamaokaNC

1

如果您看到NullPointerException,然後 檢查您的「myMap」是否已正確初始化並且至少不爲空。

如果您看到IndexOutOfRangeException,那麼 「from」和「to」兩個參數應該位於地圖大小範圍內。 從> = 0 到< =地圖的最大尺寸