Удаление дубликатов в неупорядоченном массиве на Java с помощью потоков

Вот как удалить дубликаты из неупорядоченного массива примитивов int на Java с помощью потоков.

Полный код для этого можно найти здесь: remove_dupes_unordered_the_smart_way.jsh.

Рассмотрим следующую простую задачу: вы получаете массив primitive int и вам нужно вернуть новый массив, содержащий только уникальные элементы.

Поскольку мы используем streams с 2014 года и знаем, что Set не принимает дубликаты, нам нужно только собрать массив в набор и обратно в массив.

int[] removeDupes(int arr[]) {
    return Arrays.stream(arr)
        .boxed()
        .collect(Collectors.toSet()).stream()
        .mapToInt(Integer::intValue).toArray();
}
Вход в полноэкранный режим Выход из полноэкранного режима

Метод boxed просто возвращает поток Integer вместо примитива.

Скачать полный код из этого поста можно здесь: remove_dupes_unordered_the_smart_way.jsh.

Оцените статью
Procodings.ru
Добавить комментарий