2014-01-21 74 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 到< =地图的最大尺寸