6
我想根據元素索引得到LinkedHashMap
的子地圖。我在這裏重塑車輪嗎?聽起來這應該在API是冥冥中早已:如何通過元素索引獲取LinkedHashMap的子圖?
public <K,V> LinkedHashMap<K,V> subMap(LinkedHashMap<K,V> map, int fromIndex, int toIndex) {
LinkedHashMap<K,V> result = new LinkedHashMap<K,V>();
int i=0;
for(Map.Entry<K,V> entry : map.entrySet()) {
if(i >= fromIndex && i < toIndex) {
result.put(entry.getKey(), entry.getValue());
}
i++;
}
return result;
}
這是要走的路還是有(在Java 6 API)一些其他更好的/現有的解決方案。
如何使用返回的'Map'?你可以使用迭代器嗎?如果是這樣,您可以返回一個自定義迭代器,該自定義迭代器返回指定索引範圍之間的值(或Map.Entries)。在處理集合的索引範圍時請記住併發性問題。 – Nate