Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java去重的方法


在 Java 中,有多种方法可以实现列表(List)去重。下面我将介绍一些常见的方法,包括使用循环、Set、Stream API 等方法来实现去重,并提供相应的代码示例。假设我们有一个包含重复元素的列表:

List<Integer> listWithDuplicates = Arrays.asList(1, 2, 2, 3, 4, 4, 5);

使用循环

这是最基本的方法,通过遍历列表并检查重复项来进行去重。

List<Integer> deduplicatedList = new ArrayList<>();
for (Integer num : listWithDuplicates) {
    if (!deduplicatedList.contains(num)) {
        deduplicatedList.add(num);
    }
}

使用 Set

Set 是一种不允许重复元素的集合。我们可以将列表中的元素添加到 Set 中,自动去重。

Set<Integer> deduplicatedSet = new HashSet<>(listWithDuplicates);
List<Integer> deduplicatedList = new ArrayList<>(deduplicatedSet);

Maven 依赖:

<!-- 在 pom.xml 中添加以下依赖 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

Gradle 依赖:

// 在 build.gradle 中添加以下依赖
implementation 'org.apache.commons:commons-collections4:4.4'
import org.apache.commons.collections4.CollectionUtils;

List<Integer> deduplicatedList = new ArrayList<>(CollectionUtils.removeAll(listWithDuplicates, Collections.singleton(null)));

使用 Stream API

Stream API 提供了强大的功能来处理集合数据,包括去重。

List<Integer> deduplicatedList = listWithDuplicates.stream()
    .distinct()
    .collect(Collectors.toList());

使用 Java 8 之前的方式

在 Java 8 之前,我们可以使用经典的方式,利用 Map 来去重。

Map<Integer, Integer> map = new HashMap<>();
for (Integer num : listWithDuplicates) {
    map.put(num, num);
}
List<Integer> deduplicatedList = new ArrayList<>(map.values());

以上是几种常见的 Java 列表去重方法,每种方法都有自己的优缺点,你可以根据场景和需求选择适合的方法。

以下是一些常见的去重集合的实现方式,包括步骤流程、示例代码以及可能的第三方库依赖。示例代码:###第三方库依赖以上实现方式都不需要额外的第三 ...
下面我将介绍几种常见的方法,包括使用Java标准库和第三方库,以及它们的具体步骤流程和示例代码。###使用第三方库Guava添加Maven依 ...
以下是一些常见的方法,每种方法都会详细介绍其步骤流程、示例代码以及优缺点,最后进行总结对比:###方法1:使用set()去重步骤流程:1.# ...
###使用内置方法trim()这是最简单的一种方式,可以去除字符串开头和结尾的空格。示例代码:###使用ApacheCommonsLang库 ...
Hive SQL 提供了数据分组后去重聚合函数 COLLECT_SET,它可以将分组数据排成列表并组内去重,由于其是聚合函数需要和 GROU ...