Нет, это не очень хорошая реализация.
В спецификации java.util.List говорится, что в списке могут быть пустые значения, а в некоторых случаях вы можете иметь несколько пустых значений.
Ваш компаратор завершится с ошибкой NullPointerException, как только он попытается выполнить o?.getId()
для нулевого элемента.
Что я обычно делаю, так это делаю мой класс implement java.lang.Comparable
, затем я могу использовать карту для сортировки элементов по мере их добавления. Обычно нужно составить список, так почему бы не построить TreeMap вместо этого?
Если вы повторно используете свой класс и хотите отсортировать его по-разному, вы можете создать TreeMap
с Comparator
в конструкторе, чтобы не было необходимости явно сортировать его.