概述
本教程将向你演示如何删除List中的重复元素,删除List中重复元素的方法包括:纯Java实现、使用Java8 Lambda表达式、使用Guava。
1. 纯Java实现删除List中的重复元素
我们可以很容易的通过Java集合类——Set来实现该功能。
public void
givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect() {
List listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0);
// 使用HashSet进行去重
List listWithoutDuplicates = new ArrayList<>(new HashSet<>(listWithDuplicates));
assertThat(listWithoutDuplicates, hasSize(4));
}
如你所见,该方法不会改变已有的List。
2. 使用Guava删除List中的重复元素
同样的功能也可以使用Guava来完成。
public void
givenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect() {
List listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0);
// 使用Guava,原理同上
List listWithoutDuplicates = Lists.newArrayList(Sets.newHashSet(listWithDuplicates));
assertThat(listWithoutDuplicates, hasSize(4));
}
同样,该方法也不会改变已有的List。
3. 使用Java 8的Stream + Lambda表达式删除重复元素
最后我们来看一下最新的解决方法,使用Java8的Stream + Lambda表达式来进行去重,Stream的distinct()方法可以基于元素的equlas方法实现去重:
public void
givenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect() {
List listWithDuplicates = Lists.newArrayList(1, 1, 2, 2, 3, 3);
// 使用Stream去重
List listWithoutDuplicates = listWithDuplicates.stream()
.distinct()
.collect(Collectors.toList());
}
至此,我们已经有了3个方法可用于删除List中的重复元素。
最后
以上就是轻松糖豆为你收集整理的java去除集合中的相同元素,Java 删除List中的重复元素的全部内容,希望文章能够帮你解决java去除集合中的相同元素,Java 删除List中的重复元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复