2012-05-14 15 views
6

मैं तत्व सूचकांक के आधार पर LinkedHashMap का सबमिशन प्राप्त करने का प्रयास कर रहा हूं। क्या मैं यहां पहिया को पुनर्जीवित कर रहा हूं? ध्वनि इस कहीं एपीआई में होना चाहिए की तरह पहले से ही:तत्व सूचकांक द्वारा 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; 
} 

इस जाने का रास्ता है या कुछ अन्य बेहतर/मौजूदा समाधान (जावा 6 एपीआई के अंदर) कर रहे हैं।

+0

लौटाए गए 'मानचित्र' का उपयोग कैसे किया जाएगा? क्या आप इसके बजाए एक इटरेटर का उपयोग कर सकते हैं? यदि ऐसा है, तो आप एक कस्टम इटरेटर वापस कर सकते हैं जो निर्दिष्ट इंडेक्स रेंज के बीच मान (या Map.Entries) देता है। संग्रह के सूचकांक श्रेणियों से निपटने के दौरान समवर्ती मुद्दों को ध्यान में रखें। – Nate

उत्तर

1

NavigableMap आपको उप-मानचित्र वापस पाने की अनुमति देता है, लेकिन इसके लिए आपको 'कुंजी से' और 'कुंजी' निर्दिष्ट करने की आवश्यकता है, ताकि आप इसे पूरी तरह से इंडेक्स पर नहीं कर सकें।

मुझे मानक API के माध्यम से ऐसा करने के किसी भी अन्य तरीके से अवगत नहीं है।

संबंधित मुद्दे