Java 如何通过元素索引获取LinkedHashMap的子映射?

Java 如何通过元素索引获取LinkedHashMap的子映射?,java,Java,我正在尝试根据元素索引获取LinkedHashMap的子映射。我是在重新发明轮子吗?听起来这应该已经在API中的某个地方了: public <K,V> LinkedHashMap<K,V> subMap(LinkedHashMap<K,V> map, int fromIndex, int toIndex) { LinkedHashMap<K,V> result = new LinkedHashMap<K,V>(); i

我正在尝试根据元素索引获取
LinkedHashMap
的子映射。我是在重新发明轮子吗?听起来这应该已经在API中的某个地方了:

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;
}
公共LinkedHashMap子映射(LinkedHashMap映射,int-fromIndex,int-toIndex){
LinkedHashMap结果=新建LinkedHashMap();
int i=0;
对于(Map.Entry:Map.entrySet()){
如果(i>=fromIndex&&i
这就是解决方法,还是有其他更好的/现有的解决方案(在Java 6 API中)。

允许您返回子映射,但它要求您指定“from键”和“to键”,因此不能仅在索引上执行


我不知道通过标准API执行此操作的任何其他方法。

如何使用返回的
映射?你能用迭代器代替吗?如果是这样,您可以返回一个自定义迭代器,该迭代器返回指定索引范围之间的值(或Map.Entries)。在处理集合的索引范围时请记住并发性问题。实际上,任何SortedMap都将提供submap(…)