Это что-то простое, но я явно не хватает что-то ....Сортировка целочисленный массив на основе пользовательского компаратора
У меня есть 2D массив, содержащий целые представления значений цвета, которые были вычислены из объекта BufferedImage. У меня также есть способ вычисления значения яркости на основе целочисленных значений.
Я хочу сортировать строки на основе значения яркости. Тем не менее, я получаю
sort(java.lang.Integer[], Comparator<? super Integer>) in Arrays cannot be applied
to (int[], IntComparator)
Мой метод сравнения:
private class IntComparator implements Comparator<Integer>{
@Override
public int compare(Integer x, Integer y){
return (PhotoUtils.getBrightnessValue(x) <= PhotoUtils.getBrightnessValue(y)) ? x : y;
}
}
Внутри моего метода sortRow, я
public void sortRow(int row) {
Arrays.sort(this.buffer[row], new IntComparator());
}
Что такое проблема здесь? В конце концов, я просто расчет два целочисленных значения на основе входных данных и возвращая либо < 0 или> 0
Вы объединяете int [] и Integer []. Обратите внимание, что вы можете autobox/auto-unbox от int до Integer и наоборот, но не от Integer [] до int [], и не наоборот. – Taylor