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

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

от otha_marks , в категории: Java , 3 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от NicolasSsh , 3 года назад

@otha_marks  Вы можете использовать Collections.sort(), а затем Collections.reverse()


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.ArrayList;
import java.util.Collections;

class Main {
    public static void main(String[] args) throws Exception {
        ArrayList booksCosts = new ArrayList();
        booksCosts.add(38);
        booksCosts.add(12);
        booksCosts.add(5);
        booksCosts.add(62);

        System.out.println("Before : ");

        for (int i = 0; i < booksCosts.size(); i++) {
            System.out.print(booksCosts.get(i) + " ");
        }

        Collections.sort(booksCosts); // Сортируем arraylist
        Collections.reverse(booksCosts); // Переворачиваем arraylist

        System.out.println("\nAfter : ");

        for (int i = 0; i < booksCosts.size(); i++){
            System.out.print(booksCosts.get(i) + " ");
        }
        // Before : 
        // 38 12 5 62
        // After :
        // 62 38 12 5
    }
}

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

от aubree , 2 года назад

@otha_marks 

Для сортировки ArrayList по убыванию в Java можно использовать метод Collections.sort(), передав ему компаратор, который будет сравнивать элементы в обратном порядке.


Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Example {
   public static void main(String[] args) {
      ArrayList<Integer> numbers = new ArrayList<Integer>();
      numbers.add(3);
      numbers.add(1);
      numbers.add(4);
      numbers.add(2);
      
      // Сортировка по убыванию
      Comparator<Integer> comparator = Collections.reverseOrder();
      Collections.sort(numbers, comparator);

      System.out.println(numbers);
   }
}


В этом примере мы создаем ArrayList numbers, добавляем в него несколько элементов и затем сортируем его в обратном порядке, используя компаратор Collections.reverseOrder(). Результат выводится на экран с помощью метода System.out.println().