Есть код:
Почему так ((v1 * v1 - v2 * v2) * 100); работает,
а если так, то не работает.
Arrays.sort(array, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
double v1 = o1.intValue() - mediana;
double v2 = o2.intValue() - mediana;
return (int) ((v1 * v1 - v2 * v2) * 100);
}
});
Почему так ((v1 * v1 - v2 * v2) * 100); работает,
а если так, то не работает.
public int compare(Integer o1, Integer o2) {
return Math.abs(o1)-Math.abs(o2);
}
public int compare(Integer o1, Integer o2) { return Math.abs(o1) - Math.abs(o2); }Получается я в компараторе забыла про медиану. Спасибо вам за обьяснение. Очень помогает.array[(array.length-1) / 2]А у меня было вот так (это неправильно?):
array[(array.length) / 2]return Math.abs(mediana - o1) - Math.abs(mediana - o2); }Попробую еще разобраться. Спасибо.