Как убрать повторяющиеся элементы в массиве на java?

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

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

Как убрать повторяющиеся элементы в массиве на java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@urban_will Можно использовать Arrays.stream() чтобы убрать повторяющиеся элементы в любом массиве на Java, ниже код как пример:


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

public class Main {
    public static void main(String[] args) {
        // массив с дубликатами
        int[] arr = new int[]{1, 2, 2, 2, 3, 3, 4, 5, 5};

        // убрать повторяющиеся элементы в массиве
        int[] result = Arrays.stream(arr).distinct().toArray();

        // Вывод: [1, 2, 3, 4, 5]
        System.out.println(Arrays.toString(result));
    }
}


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

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

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

@urban_will 

В Java есть несколько способов убрать повторяющиеся элементы из массива. Один из них - использование класса java.util.HashSet.


Вот пример, который демонстрирует, как это можно сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import java.util.Arrays;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        Integer[] array = {1, 2, 3, 4, 1, 2, 5, 6, 3};
        
        // Преобразуем массив в список
        HashSet<Integer> set = new HashSet<>(Arrays.asList(array));
        
        // Преобразуем список обратно в массив
        Integer[] result = set.toArray(new Integer[set.size()]);
        
        // Выводим результат
        System.out.println(Arrays.toString(result));
    }
}


В этом примере мы создаем массив array, содержащий повторяющиеся элементы. Затем мы преобразуем этот массив в список set, используя метод Arrays.asList(), и преобразуем список обратно в массив result, используя метод toArray().


Теперь в массиве result нет повторяющихся элементов. Если вы запустите этот код, то получите вывод [1, 2, 3, 4, 5, 6].