English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массив

Java Ориентированное на объекты (I)

Java Ориентированное на объекты (II)

Java Ориентированное на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map-сборник

Java Set-сборник

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Java-программа для удаления дублирующихся элементов из ArrayList

Java полная коллекция примеров

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

Чтобы понять этот пример, вам следует знать следующееJava-программированиеТема:

Пример 1: использование Set для удаления дублирующихся элементов из ArrayList

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
class Main {
  public static void main(String[] args) {
    // Создание ArrayList из массива
    // Использование метода asList() класса Arrays
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
    System.out.println("ArrayList с повторяющимися элементами: " + numbers);
    // Преобразование ArrayList в набор
    Set<Integer> set = new LinkedHashSet<>();
    set.addAll(numbers);
    // Удалить все элементы из ArrayList
    numbers.clear();
    // Добавить элементы из набора в ArrayList
    numbers.addAll(set);
    System.out.println("ArrayList без повторяющихся элементов: " + numbers);
  }
}

Результат вывода

ArrayList с повторяющимися элементами: [1, 2, 3, 4, 1, 3]
ArrayList без повторяющихся элементов: [1, 2, 3, 4]

В上面的 примере мы создали список с именем numbers. ArrayList содержит повторяющиеся элементы.

Чтобы удалить повторяющиеся элементы из ArrayList, нам нужно:

  • Добавьте все элементы из ArrayList в набор

  • Используйте метод clear() для очистки ArrayList

  • Затем добавьте все элементы из набора в ArrayList

Здесь мы используем LinkedHashSet для создания集合а. Это потому, что он удаляет повторяющиеся элементы и сохраняет порядок вставки. Для получения дополнительной информации посетитеJava LinkedHashSet.

Пример 2: Удаление повторяющихся элементов из ArrayList с помощью Stream

import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class Main {
  public static void main(String[] args) {
    // Создание ArrayList из массива
    // Использование метода asList() класса Arrays
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
    System.out.println("ArrayList с повторяющимися элементами: " + numbers);
    // Создание потока из ArrayList
    Stream<Integer> stream = numbers.stream();
    // Вызов метода distinct() из Stream
    // Удаление повторяющихся элементов
    stream = stream.distinct();
    // Преобразование потока в ArrayList
    numbers = (ArrayList<Integer>)stream.collect(Collectors.toList());
    System.out.println("ArrayList без повторяющихся элементов: " + numbers);
  }
}

Результат вывода

ArrayList с повторяющимися элементами: [1, 2, 3, 4, 1, 3]
ArrayList без повторяющихся элементов: [1, 2, 3, 4]

В上面的 примере мы создали список с именем numbers. ArrayList содержит повторяющиеся элементы.

Здесь мы используемStreamКласс удаляет повторяющиеся элементы из arraylist.

  • Numbers.stream() - Создание потока из arraylist

  • stream.distinct() - Удаление повторяющихся элементов

  • stream.collect(Collectors.toList()) - Возврат списка из потока

Здесь мы используем преобразование типов, чтобы преобразовать возвращаемый список в arraylist.

Java полная коллекция примеров