Сообщение Re: стыдно....но спрошу от 16.03.2017 19:03
Изменено 17.03.2017 5:52 Blazkowicz
Re: стыдно....но спрошу
Здравствуйте, зиг, Вы писали:
зиг>не кидайтесь тапками плиз, превратилась совсем в говнокодершу. может, старость.
зиг>есть такой код:
зиг>
зиг>што он делает — проходится по отсортированному списку из чисел (вида -100, -90, -2, 0, 3, 50) , и для каждого из чисел (кроме центрального — 0) находит "пару" — в зависимости оттого если число отрицательное или положительное — это или следующее число в списке, либо предыдущее. ноля быть не может. зачем такое надо не спрашивайте !!
зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 8 — если они тут подойдут
У меня такое вырисовалось:
ЗЫ. Про надежность сравнения ==/!= double в курсе же?
зиг>не кидайтесь тапками плиз, превратилась совсем в говнокодершу. может, старость.
зиг>есть такой код:
зиг>
зиг>for (ListIterator<Double> it = list.listIterator(); it.hasNext(); ) {
зиг> Double value = it.next();
зиг> Double refValue = null;
зиг>if (value != 0) {
зиг> if (value < 0 && it.hasNext()) {
зиг> refValue = it.next();
зиг> it.previous();
зиг> } else if (value > 0 && it.hasPrevious()) {
зиг> it.previous();
зиг> refValue = it.previous();
зиг> it.next();it.next();
зиг> }
зиг>}
зиг> ... //какие-то операции с value и refValue
зиг>}
зиг>зиг>што он делает — проходится по отсортированному списку из чисел (вида -100, -90, -2, 0, 3, 50) , и для каждого из чисел (кроме центрального — 0) находит "пару" — в зависимости оттого если число отрицательное или положительное — это или следующее число в списке, либо предыдущее. ноля быть не может. зачем такое надо не спрашивайте !!
зиг>вопрос — как переписать этот уродский код чтоб было красивее. одобряется использование фич джавы 8 — если они тут подойдут
У меня такое вырисовалось:
private void processList(List<Double> list) {
int zeroIndex = findZero(list);
for (int i = 1; i < zeroIndex; i++) {
Double value = list.get(i);
Double refValue = list.get(i - 1);
process(value, refValue);
}
for (int i = zeroIndex + 1; i < list.size() - 1; i++) {
Double value = list.get(i);
Double refValue = list.get(i + 1);
process(value, refValue);
}
}
private void process(Double value, Double refValue) {
//какие-то операции с value и refValue
}ЗЫ. Про надежность сравнения ==/!= double в курсе же?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: стыдно....но спрошу
Здравствуйте, зиг, Вы писали:
У меня такое вырисовалось:
ЗЫ. Про надежность сравнения ==/!= double в курсе же?
У меня такое вырисовалось:
private void processList(List<Double> list) {
int zeroIndex = findZero(list);
for (int i = 1; i < zeroIndex; i++) {
Double value = list.get(i);
Double refValue = list.get(i - 1);
process(value, refValue);
}
for (int i = zeroIndex + 1; i < list.size() - 1; i++) {
Double value = list.get(i);
Double refValue = list.get(i + 1);
process(value, refValue);
}
}
private void process(Double value, Double refValue) {
//какие-то операции с value и refValue
}ЗЫ. Про надежность сравнения ==/!= double в курсе же?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>