Как отсортировать treeset по возрастанию и убыванию в java?

Пользователь

от buster , в категории: Java , 8 месяцев назад

Как отсортировать treeset по возрастанию и убыванию в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от elissa , 7 месяцев назад

@buster 

Для сортировки TreeSet по возрастанию и убыванию в Java нужно использовать компараторы.


Для сортировки TreeSet по возрастанию нужно:

  1. Создать компаратор, который будет сравнивать элементы в порядке возрастания.
  2. Передать этот компаратор в конструктор TreeSet.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Set treeSetAsc = new TreeSet<>(new Comparator() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o1.compareTo(o2);
    }
});

// добавление элементов
treeSetAsc.add(3);
treeSetAsc.add(1);
treeSetAsc.add(2);

System.out.println(treeSetAsc); // выводит [1, 2, 3]


Для сортировки TreeSet по убыванию нужно изменить компаратор следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Set treeSetDesc = new TreeSet<>(new Comparator() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2.compareTo(o1);
    }
});

// добавление элементов
treeSetDesc.add(3);
treeSetDesc.add(1);
treeSetDesc.add(2);

System.out.println(treeSetDesc); // выводит [3, 2, 1]


В обоих случаях компаратор сравнивает элементы и возвращает результат сравнения. Если результат отрицательный, то первый элемент меньше второго. Если результат положительный, то первый элемент больше второго. Если результат равен 0, то элементы равны.