Вы не можете отсортировать Set
с Collections.sort
, поскольку он потребляет только List<T>
.
. Вместо этого вы можете сделать свой набор TreeSet
с помощью предоставленного компаратора:
Set<A> mySet = new TreeSet<>(Comparator.comparing(A::getEnumField));
означает, что элементы будут отсортированы по мере добавления.
или, если у вас нет контроля над изменением набора, в котором уже есть элементы, вы можете использовать потоковый API, собирая в TreeSet
с вышеупомянутым компаратором, который затем выдает новый TreeSet
с отсортированными элементами.
Set<A> sortedSet = mySet.stream()
.collect(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(A::getEnumField))));