Java Удалить дубликаты из списка

В этом посте представлены примеры, показывающие, как удалить повторяющиеся элементы из ArrayList в Java.



Удалить повторяющиеся строки из ArrayList

Поскольку a Set не может содержать повторяющиеся элементы, мы можем создать экземпляр Set объект, передаваемый в ArrayList с дубликатами в качестве параметра.

Например:


import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.Set; public class RemoveDuplicatesFromArrayList {
public static void main(String[] args) {
ArrayList pets = new ArrayList();

pets.add('cat');
pets.add('dog');
pets.add('cat');
pets.add('hamster');

System.out.println(pets);

Set hashSet = new LinkedHashSet(pets);
ArrayList removedDuplicates = new ArrayList(hashSet);

System.out.println(removedDuplicates);
} }

Выход:

[cat, dog, cat, hamster] [cat, dog, hamster]

Связанный:


Удалить повторяющиеся целые числа из списка

Точно так же мы можем использовать ту же методологию для удаления повторяющихся целых чисел.

import java.util.*; public class RemoveDuplicatesFromArrayList {
public static void main(String[] args) {
List numbers = Arrays.asList(1,2,2,2,3,5);

System.out.println(numbers);

Set hashSet = new LinkedHashSet(numbers);
ArrayList removedDuplicates = new ArrayList(hashSet);

System.out.println(removedDuplicates);
} }

Выход:

[1, 2, 2, 2, 3, 5] [1, 2, 3, 5]

Удаление дубликатов из списка с помощью лямбда-выражений Java 8

import java.util.*; import java.util.stream.Collectors; public class RemoveDuplicatesFromArrayList {
public static void main(String[] args) {
List numbers = Arrays.asList(1,2,2,2,3,5);

System.out.println(numbers);

List removedDuplicates = numbers.stream()


.distinct()


.collect(Collectors.toList());

System.out.println(removedDuplicates);
} }

Выход:

[1, 2, 2, 2, 3, 5] [1, 2, 3, 5]