Мне нравится требовать правильную семантику Java, когда у меня есть коллекция, в которой не должно быть дубликатов, то есть использовать интерфейс Set
. Тем не менее, во многих случаях вы хотите сохранить порядок вставки, как List
для удобства, поддержание двух параллельных структур данных кажется расточительным и сложным для синхронизации. Вот почему я использую что-то вроде этого. InsertionOrderSet.java Это специальная реализация SortedSet
, которая использует объект-оболочку для поддержки и index
, которая может быть отсортирована компаратором, но скрывает детали реализации от внешних потребителей, поэтому она просто выглядит как обычный сейф старого типа SortedSet
.