📜  从 android 中的 arraylist 中删除重复项 - Java (1)

📅  最后修改于: 2023-12-03 15:21:52.006000             🧑  作者: Mango

从Android中的ArrayList中删除重复项

在Android开发过程中,我们经常需要对数据进行去重处理。本文将介绍如何从一个ArrayList中删除重复项。

使用HashSet

HashSet是一种不允许有重复数据的集合,当我们将一个ArrayList传入HashSet中时,重复的元素将自动被去除。

下面是代码实现:

ArrayList<String> listWithDuplicates = new ArrayList<>();
listWithDuplicates.add("apple");
listWithDuplicates.add("banana");
listWithDuplicates.add("apple");
listWithDuplicates.add("orange");

HashSet<String> set = new HashSet<>(listWithDuplicates);

ArrayList<String> listWithoutDuplicates = new ArrayList<>(set);

以上代码将listWithDuplicates中的重复元素去除,生成一个新的listWithoutDuplicates。

使用LinkedHashSet

如果我们需要保留ArrayList中元素的顺序,我们可以使用LinkedHashSet代替HashSet。

下面是代码实现:

ArrayList<String> listWithDuplicates = new ArrayList<>();
listWithDuplicates.add("apple");
listWithDuplicates.add("banana");
listWithDuplicates.add("apple");
listWithDuplicates.add("orange");

LinkedHashSet<String> set = new LinkedHashSet<>(listWithDuplicates);

ArrayList<String> listWithoutDuplicates = new ArrayList<>(set);

以上代码将listWithDuplicates中的重复元素去除,生成一个新的listWithoutDuplicates,并且顺序与原始的listWithDuplicates保持一致。

使用Java 8 Stream

从Java 8开始,我们可以使用Stream API去除ArrayList中的重复元素。

下面是代码实现:

ArrayList<String> listWithDuplicates = new ArrayList<>();
listWithDuplicates.add("apple");
listWithDuplicates.add("banana");
listWithDuplicates.add("apple");
listWithDuplicates.add("orange");

ArrayList<String> listWithoutDuplicates = listWithDuplicates
        .stream()
        .distinct()
        .collect(Collectors.toList());

以上代码将listWithDuplicates中的重复元素去除,生成一个新的listWithoutDuplicates。

总结

本文介绍了如何使用HashSet、LinkedHashSet和Java 8 Stream去除ArrayList中的重复元素。根据实际需求选择合适的方法,可以提高代码执行效率。