Используйте взамен TreeSet
. Он имеет конструктор , принимающий Comparator
. Он автоматически отсортирует Set
.
Если вы хотите преобразовать HashSet
в TreeSet
, сделайте так:
Set<YourObject> hashSet = getItSomehow();
Set<YourObject> treeSet = new TreeSet<YourObject>(new YourComparator());
treeSet.addAll(hashSet);
// Now it's sorted based on the logic as implemented in YourComparator.
Если элементы, которые у вас есть, уже реализуют Comparable
и их порядок заказа по умолчанию уже соответствует желаемому, то вам, по сути, не нужно указывать Comparator
. Затем вы можете построить TreeSet
непосредственно на основе HashSet
. Э.Г.
Set<String> hashSet = getItSomehow();
Set<String> treeSet = new TreeSet<String>(hashSet);
// Now it's sorted based on the logic as implemented in String#compareTo().
Смотри также: