Как определить последний элемент при использовании итератора?
Я люблю использовать цикл for с принципом итератора, например
for(String s : collectionWithStrings)
System.out.println(s + ", ");
вопрос:Как я могу определить, является ли текущий элемент последним?
с собственным индексом, как int = 0; i < collection.size(); i++
С i == collection.size() - 1
, но не приятно. Можно ли также определить последний элемент с помощью итератора для примера выше?
3 ответов
действительно,Iterator#hasNext
метод возвращает логическое определение, если итератор вернет другой элемент с next
метод.
ваша итерация может быть поставлена следующим образом:
Iterator<String> iterator = collectionWithString.iterator();
while(iterator.hasNext()) {
String current = iterator.next();
// if you invoke iterator.hasNext() again you can know if there is a next element
}
просто использовать hasNext
метод.
if(!iterator.hasNext()) {
// this is the last element
}
обычно мы повторяем с помощью Iterator
а так:
while(iterator.hasNext()) {
Object obj = iterator.next();
}
Это невозможно с улучшенный цикл for без поддержания вашего собственного счетчика. Честно говоря, это мой единственный решающий фактор, когда я выбираю, какой тип цикла for использовать.
при использовании Iterator
, с hasNext()
метод, который вернет false при обработке последнего элемента.