Java Hashmap Iteration: посмотрите на два значения одновременно?

StackOverflow https://stackoverflow.com/questions/1436268

Вопрос

У меня есть этот цикл:

 for (Map.Entry<Integer, String> entry: collection.entrySet()) {

 }

Я бы хотел сравнить запись и следующую после этого. Как бы я это сделал?

Это было полезно?

Решение

Вы делаете это на предыдущем.

Map.Entry<Integer, String> previous = null;
for (Map.Entry<Integer, String> entry : collection.entrySet()) {
  if (previous != null) {
    // compare entry to rpevious
  }
  previous = entry;
}

Другие советы

Когда вы перебираете цикл, вы можете установить переменную с именем oldEntry, например (инициализируемой на ноль), и использовать ее так, как хотите.

 Map.Entry<Integer,String> oldEntry = null;
 for (Map.Entry<Integer, String> entry: collection.entrySet()) {
   if (oldEntry != null) doStuff(oldEntry, newEntry);
   oldEntry = entry;
 }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top