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