Как определить последний элемент при использовании итератора?
Я люблю использовать цикл 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 при обработке последнего элемента.