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

#java #collections #comparator #comparable

Вопрос:

Компаратор используется, когда мы хотим добиться индивидуального порядка сортировки, но это также возможно при сопоставлении. Так почему же мы используем компаратор?

Комментарии:

1. «это также возможно при сопоставимых» — не совсем так. Если у вас есть (скажем) Person класс с датой рождения и именем, и иногда вы хотите отсортировать список людей по имени, а иногда по возрасту, как бы вы это сделали Comparable ?

Ответ №1:

Так почему же мы используем Comparator ?

Некоторые из причин включают:

  • Потому Comparable что позволяет определить только один порядок сортировки. Некоторые приложения требуют более одного порядка сортировки; например, порядок имен в зависимости от возраста или порядок имен в зависимости от обратного порядка имен.
  • Потому что вы, возможно, не сможете настроить тип. Например, вы не можете настроить порядок сортировки String String класса «потому final что».
  • Потому что может быть неуместно настраивать порядок сортировки для класса. Например, для класса может вообще не иметь смысла иметь какой-либо естественный порядок.

Во всяком случае, Comparator предоставляет альтернативу Comparable . Вам не нужно использовать его, если вы этого не хотите.