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 实例大全

在此示例中,我们将学习如何用Java删除ArrayList中的重复元素。

要理解此示例,您应该了解以下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
    //使用Arrays类的asList()方法
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
    System.out.println("具有重复元素的ArrayList: " + numbers);

    //将arraylist转换为set
    Set<Integer> set = new LinkedHashSet<>();
    set.addAll(numbers);

    //删除arraylist的所有元素
    numbers.clear();

    //将元素从set集合添加到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 中的所有元素添加到 set 集合中

  • 使用 clear() 方法清空 arraylist

  • 再将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;

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

    //从数组创建一个arraylist
    //使用Ararray类的asList()方法
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 1, 3));
    System.out.println("具有重复元素的ArrayList: " + numbers);

    //从数组列表创建流
    Stream<Integer> stream = numbers.stream();

    //调用 Stream 的 distinct ()
    //删除重复的元素
    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 实例大全