Как удалить одинаковые значения в списке ArrayList?

Подскажите, как удалить одинаковые значения, например 232323 232323 из ArrayList<String> id_ = new ArrayList<String>();


Ответы (2 шт):

Автор решения: Andrew

Можно решить данную проблему при использовании Set:

Set<String> set = new HashSet<>(id_);
id_.clear();
id_.addAll(set);
→ Ссылка
Автор решения: Ilya Yarets

Если в коллекции необоходимо хранить элементы, которые не должны иметь дубликаты, то в таких случаях используется Set или одна из его реализаций.

Set – это коллекция уникальных элементов, или коллекция, которая не позволяет хранить одинаковые элементы.

Самый простой способ удалить повторяющиеся элементы - это добавить содержимое в Set(что не допустит дублирования), а затем добавить Set обратно в ArrayList:

// помещаем вашу коллекцию в сет
Set<String> set = new HashSet<>(id_);

// чистим вашу коллекцию
id_.clear();

// помещаем из коллекции сета обратно в вашу коллекцию,
// которая на данный момент ещё пустая
id_.addAll(set);

Но стоит обратить внимание, что при добавлении обратно в ArrayList, порядок будет нарушен.

Можно так же использовать LinkedHashSet для сохранения порядка.

Set<String> s = new LinkedHashSet<>(id_);

В Java 8 можно удалить удалить дубликаты с помощью метода distinct().

List<Integer> listWithoutDuplicates =
        id_.stream().distinct().collect(Collectors.toList());
→ Ссылка