2010-11-05 16 views
5

मेरे पास एक लिंकड हैशैप में पहली कुंजी/मान जोड़ी है, जो मुझे लूप से प्राप्त होती है:LinkedHashMap में अगला आइटम प्राप्त करें?

for (Entry<String, String> entry : map.entrySet()) { 
    String key = entry.getKey(); 
    String value = entry.getValue(); 
    //put key value to use 
    break; 
} 

बाद में, किसी ईवेंट के आधार पर, मुझे लिंक की गई हैशैप में अगली कुंजी/मान जोड़ी चाहिए। इसे करने का बेहतरीन तरीका क्या है?

+0

बाद में उसी कार्य में या कहां? – thattolleyguy

उत्तर

4

पुनरावर्तक प्राप्त करें और का उपयोग hasNext() और next():

... 
Iterator<Entry<String, String>> it = map.entrySet().iterator(); 
if (it.hasNext()) { 
    Entry<String, String> first = it.next(); 
    ... 
} 
... 
if (eventHappened && it.hasNext()) { 
    Entry<String, String> second = it.next(); 
    ... 
} 
... 
1

प्रत्येक पाश के बजाय, एक इटरेटर का उपयोग करें।

Iterator it = map.entrySet().iterator(); 
while (it.hasNext()) { 
    Map.Entry entry = (Map.Entry)it.next(); 
    String key = entry.getKey(); 
    String value = entry.getValue(); 
    // do something 
    // an event occurred 
    if (it.hasNext()) entry = (Map.Entry)it.next(); 
} 
1

इसकी ज्यादा अगर आप लगातार मूल्यों की तुलना करनी पिछले मान के लिए आसान।

String pkey = null; 
String pvalue = null; 
for (Entry<String, String> entry : map.entrySet()) { 
    String key = entry.getKey(); 
    String value = entry.getValue(); 

    // do something with pkey/key and pvalue/value. 

    pkey = key; 
    pvalue = value; 
} 
संबंधित मुद्दे