Сообщение Re: стыдно....но спрошу от 16.03.2017 18:02
Изменено 16.03.2017 18:12 StanislavK
Re: стыдно....но спрошу
Здравствуйте, зиг, Вы писали:
зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 8 — если они тут подойдут
java8 потоки работают с текущим значением, там нет "предыдущего" и "следующего", так, что я бы даже отказался от итераторов. Не сказал бы, что короче, но на мой вкус читабельнее:
зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 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;
}Re: стыдно....но спрошу
Здравствуйте, зиг, Вы писали:
зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 8 — если они тут подойдут
java8 стримы работают с текущим значением, там нет "предыдущего" и "следующего", так, что я бы даже отказался от итераторов. Не сказал бы, что короче, но на мой вкус читабельнее:
зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 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;
}