Возьмите эти числа в качестве примера: 4, 7, 2, 7, 42, 3, 4, 9 и 5.
Скажем, я прошу вас отсортировать их.Как бы вы это сделали?Вы бы отсортировали их в порядке возрастания, в порядке убывания или другим способом.
Тогда ответ: вы не знаете, как их отсортировать, потому что я не предоставил вам достаточно информации.
Arrays.sort
находится в аналогичном незнании.Вы хотите попросить его что-то отсортировать для вас, но, проще говоря, Arrays.sort
не не знает , как его отсортировать.Вы должны объяснить Arrays.sort
, как вы хотите отсортировать массив.И способ, которым вы объясните это Arrays.sort
, заключается в реализации интерфейса Comparable
.
Что касается того, как этот дизайн экономит ваше время.Что ж, это делается тонким способом: если вы реализуете Comparable
, тогда вы автоматически получаете возможность использовать любой метод (думать алгоритм), который знает, как работать с Comparable
.То же самое относится и к реализации других интерфейсов.