📅  最后修改于: 2023-12-03 15:21:52.006000             🧑  作者: Mango
在Android开发过程中,我们经常需要对数据进行去重处理。本文将介绍如何从一个ArrayList中删除重复项。
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。
如果我们需要保留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 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中的重复元素。根据实际需求选择合适的方法,可以提高代码执行效率。