2016-12-17 3 views
1

У меня есть список точек, которые я сначала сортирую по возрастанию по значению x. Теперь я хотел бы отсортировать список снова, исходя из значения y, но от среднего до низкого к высокому (или от среднего до высокого к минимуму, на самом деле не имеет значения).Сортировка среднего от среднего до низкого

Это мой Java-код:

Collections.sort(list, Comparator.comparing((Integer[] p) -> p[0]).thenComparing(**"middle to low to high"**)); 

Например:

Первоначальный список: {(10,9),(11,8),(10,5),(10,7),(8,9),(11,9)}

Первая сортировка: {(8,9),(10,9),(10,5),(10,7),(11,8),(11,9)}

Второй Сортировка: {(8,9),(10,7),(10,5),(10,9),(11,8),(11,9)}это где мне нужно help

Есть ли способ написать компаратор для этого?

Спасибо!

+1

Сначала вам нужно определить средний, низкий и высокий. –

ответ

0

Вместо того, чтобы пытаться использовать новый компаратор, измените номера. Предположим, что ваш интервал (0,12), средний - 7, тогда самый простой способ - изменить все значения> 7 на v-13, отсортировать результат и изменить обратно, добавив 13 ко всем отрицательным значениям.

Смежные вопросы