Чтобы ответить на ваш вопрос, вы должны спросить себя: «Какой самый общий тип указывает характеристики того, что возвращает этот метод?»
Если характеристикой метода является возвращение нескольких уникальных объектов, отсортированных , то наиболее общий стандартный класс, представляющий это SortedSet
.
Если вы возвращаете TreeSet
, то метод дает подробные сведения о реализации того, что он возвращает (т. Е. TreeSet - это конкретный класс, а не интерфейс), чего вам часто следует избегать в ООП.
Если вы возвращаете Collection
, вы не утверждаете, что объекты уникальны или что они каким-то образом отсортированы.
Если вы возвращаете LinkedHashSet
, вы не только не в состоянии утверждать, что возвращенная коллекция каким-то образом отсортирована, но и в абстрагированном аспекте ООП (это конкретный класс, поэтому вы пропускаете детали реализации; всегда попытайтесь вернуть интерфейсы, если у вас нет веских причин).