Разница между Collections.sort() и сортировкой стримом

106
07 апреля 2021, 00:40

Я пишу программу, которая выстраивает пирамиду из отсортированных чисел и возвращает двумерный массив.

public int[][] buildPyramid(List<Integer> inputNumbers) {
...
}

У меня не проходил данный юнит-тест:

@Test(expected = CannotBuildPyramidException.class) // класс не содержит никакой логики, только наследуется от RuntimeException
    public void buildPyramid8() {
        List<Integer> input = Collections.nCopies(Integer.MAX_VALUE - 1, 0);
        // run
        int[][] pyramid = pyramidBuilder.buildPyramid(input);
        // assert (exception)
    }

Если отсортировать коллекцию данным методом,

Collections.sort(inputNumbers);

то вылезает ошибка

java.lang.Exception: Unexpected exception, expected<com.alex.demo.tasks.pyramid.CannotBuildPyramidException> but was<java.lang.OutOfMemoryError>

При этом, если использовать такой формат

    List<Integer> sorted = inputNumbers.stream().sorted().collect(Collectors.toList());

то тест проходит без ошибок. Почему?

READ ALSO
Room Database сложный фильтр для выборки

Room Database сложный фильтр для выборки

Всем привет! Ищу помощь у тех, кто сталкивался с подобной задачей или у тех, кто знает, как ее решить

175
Обновление данных в RecyclerView с помощью RecyclerView.OnScrollListener

Обновление данных в RecyclerView с помощью RecyclerView.OnScrollListener

Проблема в том, что при выполнение нового запроса на сервер после прокручивания у меня список полностью обновляется, необходимо, чтобы он добавлялся...

120
Как именно работает метод read() у InputStream?

Как именно работает метод read() у InputStream?

Как же все-таки устроена работа метода read():

117
Подскажите как реализовать сервер для Android приложений

Подскажите как реализовать сервер для Android приложений

Я разрабатываю приложение под Android и хотел бы узнать как реализовать сервер который бы принимал данные и сохранял их в базу данных желательно...

114