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

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

от dayna , в категории: Java , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@dayna Чтобы отсортировать массив по убыванию используйте Arrays.sort() с Collections.reverseOrder() параметров в Java, пример:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import java.util.Arrays;
import java.util.Collections;

public class Main {
    public static void main(String args[]) {
        Integer[] arr = new Integer[]{12, 1, 15, 25, 3};
        // отсортировать массив чисел по убыванию
        Arrays.sort(arr, Collections.reverseOrder());
        // Вывод: [25, 15, 12, 3, 1]
        System.out.println(Arrays.asList(arr));
    }
}


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

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

от roxanne.hauck , 2 года назад

@dayna 

Вы можете использовать метод sort() из класса Arrays, и передать ему компаратор, который сравнивает элементы массива и определяет их порядок сортировки. Ниже пример кода, который сортирует массив целых чисел по убыванию:

1
2
3
int[] arr = {3, 5, 1, 2, 4};

Arrays.sort(arr, (a, b) -> b - a);


В этом коде, мы используем лямбда-выражение, чтобы определить компаратор, который сравнивает два элемента массива a и b, и возвращает отрицательное число, если a должен идти перед b, и положительное число если b должен идти перед a.


Если вы хотите сортировать массив объектов, то можете использовать свой собственный компаратор.

1
2
3
YourClass[] arr = {...};

Arrays.sort(arr, (a, b) -> b.getValue() - a.getValue());


Здесь, мы сравниваем значения, которые возвращает метод getValue() для каждого объекта массива.