Как удалить одинаковые значения в списке ArrayList?
Подскажите, как удалить одинаковые значения, например 232323 232323 из ArrayList<String> id_ = new ArrayList<String>();
Ответы (2 шт):
Можно решить данную проблему при использовании Set:
Set<String> set = new HashSet<>(id_);
id_.clear();
id_.addAll(set);
Если в коллекции необоходимо хранить элементы, которые не должны иметь дубликаты, то в таких случаях используется 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());