Что делает функция Collections.reverseOrder ()? - PullRequest
0 голосов
/ 14 декабря 2018
int min=Collections.min(list, Collections.reverseOrder());

Каким будет результат после выполнения функции reverseOrder?

Ответы [ 4 ]

0 голосов
/ 14 декабря 2018

Это похоже на вопрос об интервью Коллекции :

Теперь Collections.reverseOrder - это Comparator, который инвертирует нормальный порядок, > становится < и наоборот.

Следовательно, следующие утверждения одинаковы:

int max = Collections.min(list, Collections.reverseOrder());
int max = Collections.max(list);

Вместо этого получается максимум .

Нет реальных штрафов за скорость, поскольку сам список не изменяется, список не копируется.Сложность для List составляет O (N) : необходимо пройти через все элементы.

Было бы лучше использовать SortedSet, например TreeSet вместо List.- когда это возможно.

0 голосов
/ 14 декабря 2018

Вот пример, эта функция просто инвертирует ваши цифры, и они низкие.Посмотрите этот пример, я надеюсь, вы поймете, что он делает.

import java.util.*;

public class HelloWorld{

     public static void main(String []args){
        List<Integer> nums = Arrays.asList(1, 10, 5, 23, 2, 3);
        nums.stream()
            .forEach(System.out::println);

        nums.stream()
            .sorted(Comparator.reverseOrder())
            .forEach(System.out::println);
     }
}
0 голосов
/ 14 декабря 2018

иногда лучше убедиться в исходном коде.

public static <T> Comparator<T> reverseOrder() {
    return (Comparator<T>) ReverseComparator.REVERSE_ORDER;
}

REVERSE_ORDER - это просто объект ReverseComparator внутреннего класса.

  static final ReverseComparator REVERSE_ORDER = new ReverseComparator();
0 голосов
/ 14 декабря 2018

java.util.Collections.reverseOrder() метод является java.util.Collections методом класса.

Согласно javadoc:

Возвращает компаратор, который налагает реверс естественного порядка на коллекциюобъекты, которые реализуют интерфейс Comparable.Естественное упорядочение - это упорядочение, наложенное собственным методом сравнения объектов public static Comparator reverseOrder()

Другие примеры можно найти на следующем сайте: https://www.geeksforgeeks.org/collections-reverseorder-java-examples/

В вашем случаеследующие выражения эквивалентны:

 Collections.min(list, Collections.reverseOrder()) 

 Collections.max(list)
...