Удалить дубликаты из массива в Java
В этом посте будет обсуждаться, как удалить дубликаты из массива в Java.
Мы знаем, что массив может содержать фиксированное количество элементов, а его длина определяется при создании и не может быть изменена. Поэтому удаление элементов из массива невозможно, но вы можете создать новый массив, содержащий отдельные элементы. В Java есть много вариантов для достижения этого:
1. Использование Stream.distinct() метод
В Java 8 и более поздних версиях рекомендуется использовать Stream API для создания нового массива без дубликатов. Идея состоит в том, чтобы построить поток из элементов массива и получить отдельные элементы в потоке с помощью distinct() метод. Затем позвоните в toArray() метод для накопления элементов потока в новый массив.
Следующий пример демонстрирует это. Обратите внимание, что решение сохраняет относительный порядок элементов.
Remove Duplicate Items from a List in Java
Learn to remove duplicate elements from a List in Java using Collection.removeIf(), LinkedHashSet and Stream APIs.
1. Using Collection.removeIf()
The removeIf() method removes all of the elements of this collection that satisfy a specified Predicate. Each matching element is removed using Iterator.remove(). If the collection’s iterator does not support removal, then an UnsupportedOperationException will be thrown on the first matching element.
In the following code, the predicate adds the current element to a HashSet. As HashSet does not allow duplicate items, the add() method returns false for them. All such duplicate items are removed from the List, and finally, the List contains only the unique items.
2. Using Stream.distinct()
We can use the Java 8 Stream. distinct() method which returns a stream consisting of the distinct elements compared by object’s equals() method. Finally, collect all district elements as List using Collectors.toList().
3. Using LinkedHashSet
The LinkedHashSet is another good approach for removing duplicate elements in an ArrayList. LinkedHashSet does two things internally :
- Remove duplicate elements
- Maintain the order of elements added to it
In the given example, items in the ArrayList contain integers; some are duplicate numbers e.g. 1, 3 and 5. We add the list to LinkedHashSet, and then get back the content back into the list. The result arraylist does not have duplicate integers.
Drop me your questions related to how to remove duplicate objects in arraylist in Java.
Как удалить повторяющихся элементов из массива?

Добрый день!
Рекомендую изучить JCF. А также обратить внимание на Map тоже.
В Set элементы являются уникальными.
Соответственно, необязательно все проверять на равенство.
Достаточно итерировать по массиву int[] arr=<10, 22, 10, 20, 11, 22>; и добавить каждый элемент в Set. Повторяющиеся значения не будут добавлены
- Вконтакте


Смысла реализовывать ваш код нет, так как он комплицирован.
1) вы итерируете двумя циклами по одному массиву, чтобы получить сам (элемент) и (элемент + 1).
2) Затем сравниваете (элемент) и (элемент+1)
if(arr[i]==arr[j])<
3) А затем при выолнении условия удаляете элемент из LinkedHashSet.
set.remove();
Притом, что сам элемент никогда и не был добавлен в LinkedHashSet. А если добавить элемент в LinkedHashSet, то в силу того, что Set гарантирует уникальность элементов, то и смысла в ваших проверках не будет.
Отсюда простое решение — просто добавьте элементы в Set и они будут уникальными
E Java, Проблема в том, что ты создал LinkedHashSet, но ничего в него не положил.
А это вообще не нужно :
так как, linkedHashSet сам удаляет одинаковые элементы внутри него
Удаление повторяющихся элементов массива в Java
Чтобы обнаружить дублирующиеся значения в массиве, вам нужно сравнить каждый элемент массива со всеми оставшимися элементами, в случае совпадения сразу найдем повторяющийся элемент.
Одно из решений для этого – использовать два цикла (вложенных), где внутренний цикл начинается с i + 1 (где i – переменная внешнего цикла), чтобы избежать повторений.
Apache Commons предоставляет библиотеку с именем org.apache.commons.lang3, и ниже приведена зависимость maven для добавления библиотеки в ваш проект.
Этот пакет предоставляет класс с именем ArrayUtils. С помощью метода remove() этого класса вы можете удалить обнаруженные повторы элементов в массиве Java.
Пример
Средняя оценка 3.3 / 5. Количество голосов: 12
Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.
Или поделись статьей
Видим, что вы не нашли ответ на свой вопрос.
Помогите улучшить статью.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.