📌  相关文章
📜  Java程序从ArrayList中删除重复的元素

📅  最后修改于: 2020-09-26 19:13:53             🧑  作者: Mango

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

示例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) {

    // create an arraylist from the array
    // using asList() method of the Arrays class
    ArrayList 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 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包含重复的元素。

要从arraylist中删除重复的元素,我们有

  • 将arraylist中的所有元素添加到集合中
  • 使用clear()方法清空arraylist
  • 将集合中的所有元素添加到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) {

    // create an arraylist from the array
    // using asList() method of the Arrays class
    ArrayList 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 stream = numbers.stream();

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

    // convert the stream to arraylist
    numbers = (ArrayList)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的数组列表 。 arraylist包含重复的元素。

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

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

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