Size: a a a

2020 July 29

GV

Gukov Viktor in learn.java
Anton
интерфейс
Если тебе нужно для каждого элемента коллекции вызвать метод чем не подходит while(iterator.hasNext())?
источник

PG

Pavel Glukhov in learn.java
Anton
вообще, мне нужно для каждого элемента коллекции вызвать метод который кое-что сделает и удалит элемент из коллекции
Поэтому итераторы использовать не получится
я правильно понимаю что алгоритм следующий.
1. для каждого элемента вызвать какой-то метод.
2. в зависимости от условий этот элемент нужно удалить?
источник

A

Anton in learn.java
Pavel Glukhov
я правильно понимаю что алгоритм следующий.
1. для каждого элемента вызвать какой-то метод.
2. в зависимости от условий этот элемент нужно удалить?
нет, он в любом случае удаляет, но делает еще кое какие действия
источник

Д

Дима in learn.java
ну можно в очередь обернуть
источник

A

Anton in learn.java
Gukov Viktor
Если тебе нужно для каждого элемента коллекции вызвать метод чем не подходит while(iterator.hasNext())?
хм, подходит
источник

A

Anton in learn.java
Gukov Viktor
Если тебе нужно для каждого элемента коллекции вызвать метод чем не подходит while(iterator.hasNext())?
подожди, а у итератора нельзя никак текущий элемент получить?
источник

Д

Дима in learn.java
Iterator#next()
источник

GV

Gukov Viktor in learn.java
Anton
подожди, а у итератора нельзя никак текущий элемент получить?
iterator.next()
источник

A

Anton in learn.java
Дима
Iterator#next()
а первый элемент будет?
источник

Д

Дима in learn.java
Очевидно, да
источник

A

Anton in learn.java
Gukov Viktor
Если тебе нужно для каждого элемента коллекции вызвать метод чем не подходит while(iterator.hasNext())?
а через foreach нельзя так сделать?
источник

OP

Oleg Pavl in learn.java
Anton
а первый элемент будет?
Да, указатель стоит перед первым элементом. Когда вызовишь next(), тогда указатель переместиться после элемента и вернёт элемент, который он "перепрыгнул".
источник

GV

Gukov Viktor in learn.java
Anton
а через foreach нельзя так сделать?
Нет. У тебя нет явного экземпляра итератора при использовании for each
источник

OP

Oleg Pavl in learn.java
Anton
а через foreach нельзя так сделать?
А чё за задачка?
источник

A

Anton in learn.java
Gukov Viktor
Нет. У тебя нет явного экземпляра итератора при использовании for each
но мне не надо вызывать remove если что
источник

A

Anton in learn.java
Что то типа такого
while (entriesIterator.hasNext())
   {
     removeEntry(entriesIterator.next());
   }
источник

GV

Gukov Viktor in learn.java
Anton
Что то типа такого
while (entriesIterator.hasNext())
   {
     removeEntry(entriesIterator.next());
   }
Почему не:
while (entriesIterator.hasNext())
   {
     doSome(entriesIterator.next());
     entriesIterator.remove();
   }
источник

PG

Pavel Glukhov in learn.java
Gukov Viktor
Почему не:
while (entriesIterator.hasNext())
   {
     doSome(entriesIterator.next());
     entriesIterator.remove();
   }
👍
источник

T

Tagir in learn.java
Gukov Viktor
Почему не:
while (entriesIterator.hasNext())
   {
     doSome(entriesIterator.next());
     entriesIterator.remove();
   }
Не забывайте про collection.removeIf(condition)!
источник

DC

Denis Chikanov in learn.java
Tagir
Не забывайте про collection.removeIf(condition)!
Да там выше человек написал, что это не его случай (другой вопрос, что он вообще странного хочет, но это ладно)
источник