Re: стыдно....но спрошу
От: StanislavK Великобритания  
Дата: 16.03.17 18:02
Оценка:
Здравствуйте, зиг, Вы писали:

зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 8 — если они тут подойдут

java8 стримы работают с текущим значением, там нет "предыдущего" и "следующего", так, что я бы даже отказался от итераторов. Не сказал бы, что короче, но на мой вкус читабельнее:

public static void main(String... args) {
    List<Integer> ints = Arrays.asList(-100, -90, -2, 0, 3, 50);
    for(int i = 0; i != ints.size(); ++i) {
        Integer value = ints.get(i);
        Integer refVal = getRefVal(value,
                i != 0 ? ints.get(i-1) : null,
                i != ints.size()-1 ? ints.get(i+1) : null);
        System.out.println("value: " + value + ", refVal: " + refVal);
    }
}

private static Integer getRefVal(Integer cur, Integer prev, Integer next) {
    Integer result = null;
    if ( cur < 0 &&  next != null ) {
        result = next;
    } else if ( cur > 0 && prev != null ) {
        result = prev;
    }
    return result;
}
Отредактировано 16.03.2017 18:12 StanislavK . Предыдущая версия . Еще …
Отредактировано 16.03.2017 18:04 StanislavK . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.