Здравствуйте, зиг, Вы писали:
зиг>есть такой код:
Этот код, кстати, падает если входной массив содержит только положительные числа. Это так и должно быть??
Я бы написал тупо как есть:
private static void doStuff(final List<Double> list) {
Double previous = null;
for (final ListIterator<Double> it = list.listIterator(); it.hasNext(); ) {
final Double value = it.next();
final Double refValue;
if (value < 0) {
refValue = peekNext(it);
} else if (value > 0) {
refValue = previous;
} else {
refValue = null;
}
previous = value;
... //какие-то операции с value и refValue
}
}
private static Double peekNext(final ListIterator<Double> it) {
if(!it.hasNext()) return null;
final Double val = it.next();
it.previous();
return val;
}
Этот код, кстати, не падает.