Java Использование Comparator в сортировке

178
22 октября 2021, 16:30

Подскажите, пожалуйста, как реализовать Comparator при сортировке массива. Дано: массив строк

Strings [] strings = {"c", "a", "d", "b"};

Поставлена следующая задача:

Проинициализируйте переменную comparator

  1. Создайте класс, реализующий интерфейс Comparator. Подумайте о контексте, в котором будет использоваться экземпляр.
  2. Проинициализируйте переменную comparator экземпляром созданного класса.
Comparator comparator = null;

И далее:

Отсортируйте массив strings по убыванию

  1. Подумайте о том, какой Comparator следует передать, чтобы массив сортировался по убыванию.
sort.sort(strings, comparator);

Реализоваться должно с использованием класса, в котором различные способы сортировки:

public class Sorting {
    public void sort(Object[] array) {
        Arrays.sort(array);
    }
    public void sort(Object[] array, Comparator comparator) {
        /* тут должен быть код */
    }
}

Не могу понять логику, как переопределить метод compare в собственном классе, и что реализовать в методе с сортировкой по убыванию?

Answer 1

Разобрался

Sort sort = new Sorting();
Comparator comparator = new Compare();
sort.sort(strings, comparator);

И далее в классе Sorting:

 @Override
    public void sort(Object[] array, Comparator comparator){
        Arrays.sort(array, comparator.reversed());
    }
READ ALSO
Кастомные аллокаторы памяти

Кастомные аллокаторы памяти

Читал статью про кастомные аллокаторы, но не могу понять, как они выделяют память именно на куче, разве есть какой-то способ взять память на куче,...

150
Сортировка двоичного (бинарного) дерева

Сортировка двоичного (бинарного) дерева

Хочу написать двоичное дерево для хранения строкКак упрощенная задача - нужно отсортировать дерево на одном уровне

125
Segmentation fault. Найти строку, содержащую запись самого большого целого числа в десятичной системе

Segmentation fault. Найти строку, содержащую запись самого большого целого числа в десятичной системе

В коде много "странностей", но основная ошибка в том, что в функции поиска вы почему-то обращаетесь к text[column]Это, разумеется, совершенно не правильно

123