6

LinkedHashMapに最初のキーと値のペアがあります。これはループから取得します。

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

後で、イベントに基づいて、linkedHashMapの次のキーと値のペアが必要になります。これを行うための最良の方法は何ですか?

4

3 に答える 3

5

イテレータを取得して使用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();
    ...
}
...
于 2010-11-05T21:12:51.427 に答える
2

連続した値と比較する必要がある場合は、以前の値を取得する方がはるかに簡単です。

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;
} 
于 2010-11-05T21:20:16.653 に答える
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();
}
于 2010-11-05T21:11:03.780 に答える