Это не имеет ничего общего с наблюдателями отладки.
Это может помочь: из LinkedHashMap
В связанных хеш-картах с упорядоченным доступом простое обращение к карте с помощью get является структурной модификацией
при условии, что вы передаете true для упорядоченного доступа к конструктору связанного хеш-карты, что вызывает структурные изменения при каждой операции get.
ваше время
while(planetsIterator.hasNext() && ...) {
Planet planet = planetsIterator.next();
...
}
компилируется в
Iterator<Planet> it = planetsIterator.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
Planet planet = planetsIterator.get(key);
...
}
Таким образом, оператор get вызывает структурные изменения.
Вы можете работать с EntrySet, чтобы избежать этого поведения.
Обратите внимание, что эта реализация не синхронизирована. Таким образом, это не потокобезопасный.