从 ArrayList 中删除重复元素的 Java 程序

要理解此示例,您应该具备以下 Java 编程的知识:

示例 1:使用 Set 从 ArrayList 中删除重复元素

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;

public class Main {
  public static void main(String[] args) {

    // create an arraylist from the array
    // using asList() method of the Arrays class
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
    System.out.println("ArrayList with duplicate elements: " + numbers);

    // convert the arraylist into a set
    Set<Integer> set = new LinkedHashSet<>();
    set.addAll(numbers);

    // delete al elements of arraylist
    numbers.clear();

    // add element from set to arraylist
    numbers.addAll(set);
    System.out.println("ArrayList without duplicate elements: " + numbers);
  }
}

输出

ArrayList with duplicate elements: [1, 2, 3, 4, 1, 3]
ArrayList without duplicate elements: [1, 2, 3, 4]

在上面的例子中,我们创建了一个名为 numbers 的数组列表,其中包含重复的元素。

要从数组列表中删除重复的元素,我们做了以下操作:

  • ArrayList 中的所有元素添加到 Set
  • 使用 clear() 方法清空数组列表
  • Set 中的所有元素添加到 ArrayList

在这里,我们使用 LinkedHashSet 来创建一个集合。这是因为它删除了重复元素并保持了插入顺序。要了解更多信息,请访问 Java LinkedHashSet

示例 2:使用 Stream 从 ArrayList 中删除重复元素

import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {

    // create an arraylist from the array
    // using asList() method of the Arrays class
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
    System.out.println("ArrayList with duplicate elements: " + numbers);

    // create a stream from arraylist
    Stream<Integer> stream = numbers.stream();

    // call the distinct() of Stream
    // to remove duplicate elements
    stream = stream.distinct();

    // convert the stream to arraylist
    numbers = (ArrayList<Integer>)stream.collect(Collectors.toList());
    System.out.println("ArrayList without duplicate elements: " + numbers);

  }
}

输出

ArrayList with duplicate elements: [1, 2, 3, 4, 1, 3]
ArrayList without duplicate elements: [1, 2, 3, 4]

在上面的例子中,我们创建了一个名为 numbers 的数组列表,其中包含重复的元素。

在这里,我们使用 Stream 类从 ArrayList 中删除重复的元素。

  • numbers.stream() - 从数组列表创建一个流
  • stream.distinct() - 删除重复元素
  • stream.collect(Collectors.toList()) - 从流中返回一个列表

在这里,我们使用类型转换将返回的列表转换为数组列表。