Скажем, я перебираю набор в java, например,
Iterator<_someObject_> it = _someObject_.iterator();
ну, сначала я хочу просмотреть каждый объект в наборе и внести изменения в каждый объект, который я посещаю.Поэтому я использую:
while(it.hasNext()) {
_someObject_ = it.next();
_someObject_.add3(); //made up method
}
Теперь, когда я это сделал, я решил, что хочу перебрать весь набор от начала до конца еще раз, чтобы выполнить другой метод для них, учитывая, что ятолько что внес изменения в каждый элемент в моей первой итерации.
Могу ли я просто использовать
while(it.hasNext())
снова?
Я подумал, что, возможно, итератор имеет указатель, так что как только он достигнутпоследний элемент в первом проходе, если я снова вызову while(it.hasNext())
, указатель все равно будет в конце набора, то есть мой второй цикл while будет бессмысленным.