Объясните мне пожалуйста,почему когда я работаю с итератором и забываю проинициализировать сам итератор, то такой цикл будет продолжаться бесконечно?
//этот работает верно
Iterator<Object> iterator2 = set.iterator();
while(iterator.hasNext())
set2.add(iterator.next());
//а вот этот уже начнет разгонять мой процессор до сверхскоростей и все бестолку
while(set.iterator().hasNext())
set2.add(set.iterator().next());
set.iterator()
всегда создает новый итератор; в первой части вашего кода вы создаете его только один раз:
Iterator<Object> iterator2 = set.iterator();
и так он в последующем цикле наконец исчерпается, iterator.hasNext()
возвратит значение false
и цикл онончится,
но во второй части вы его создаете в цикле опять и опять:
while(set.iterator().hasNext())
и так как он всегда свежий, метод .hasNext()
опять и опять возвращает значение true
и поэтому цикл опять и опять продолжается - до бесконечности.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
вопрос как можно получить количество ссылок на экземпляр объекта или хотя бы больше 1 ли их
Думаю над архитектурой сервера для игры и встал вопрос над тем, как обрабатывать подключения клиентовПротокол - tcp/ip
Доброго Впемени суток!!!Возникла проблемма c ListVeiw,повесил на него нажатие