Информация об изменениях

Сообщение Re: стыдно....но спрошу от 17.03.2017 12:13

Изменено 17.03.2017 12:14 ·

Re: стыдно....но спрошу
Здравствуйте, зиг, Вы писали:

зиг>есть такой код:

Этот код, кстати, падает если входной массив содержит только положительные числа. Это так и должно быть??

Я бы написал тупо как есть:
    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;
    }

Этот код, кстати, не падает.
Re: стыдно....но спрошу
Здравствуйте, зиг, Вы писали:

зиг>есть такой код:

Этот код, кстати, падает если входной массив содержит только положительные числа. Это так и должно быть??

Я бы написал тупо как есть:
    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;
    }

Этот код, кстати, не падает.