Я разместил код здесь, который правильно решил проблему автора. OP хотел удалить дубликаты и поставить определенные специальные элементы в начало списка. Я использовал TreeSet
со специальным классом Comparable
, который обертывал Locale
, с которым они работали, чтобы достичь того, чего они хотели.
Затем я подумал... как и вы... что я устранял дубликаты, возвращая 0
из метода compareTo
, а не возвращая true
из реализации equals
, как нужно было бы сделать, чтобы правильно указать дубликат в Set
( из определения Set
).
У меня нет возражений против использования этого метода, но использую ли я то, что можно считать недокументированной функцией? Могу ли я с уверенностью предположить, что такие вещи в будущем будут продолжать работать?