2010-11-05 30 views
5

Tôi có cặp khóa/giá trị đầu tiên trong một LinkedHashMap, mà tôi nhận được từ một vòng lặp:Nhận mục tiếp theo trong LinkedHashMap?

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

Sau đó, dựa trên một sự kiện, tôi cần những cặp khóa/giá trị tiếp theo trong LinkedHashMap. Cách tốt nhất để làm việc này là gì?

+0

Sau đó ở cùng chức năng hoặc ở đâu? – thattolleyguy

Trả lời

4

Nhận một iterator và sử dụng 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

Thay vì cho mỗi vòng lặp, hãy sử dụng trình lặp.

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

của nó dễ dàng hơn để có giá trị trước đó nếu bạn cần phải so sánh với các giá trị liên tiếp.

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; 
} 
Các vấn đề liên quan