Я пытаюсь перебрать Iterable с помощью цикла for for, но я не могу определить, когда обрабатывается последнее значение.Последняя итерация для расширенного цикла
public void apply(Tuple key,
GlobalWindow w,
Iterable<Tuple5<String, Long, List<Lane>, Long, Long>> itrbl,
Collector<Tuple5<String, Long, List<Lane>, Long, Long>> clctr) throws Exception {
long cachedUmlaufSekunde = 0;
long currentUmlaufSekunde = 0;
long maxUmlaufSekunde = 0;
for(Tuple5 tuple:itrbl) {
maxUmlaufSekunde = (long)tuple.getField(4);
currentUmlaufSekunde = ((long)tuple.getField(1)/10)*10;
if(currentUmlaufSekunde == (cachedUmlaufSekunde + 10)) {
cachedUmlaufSekunde = currentUmlaufSekunde;
} else {
cachedUmlaufSekunde = cachedUmlaufSekunde + 10;
}
}
Многие вопросы, связанные с этой темой предлагают использовать функцию iterator.hasNext() для определения последнего элемента, но я думаю, используя что-то вроде
itrbl.iterator.hasNext();
внутри цикл не является решением для этого.