Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java list去重


在 Java 中,你可以使用多种方式对列表进行去重。下面我将介绍几种常见的方法,包括使用 Java 标准库和第三方库,以及它们的具体步骤流程和示例代码。

假设我们有一个 List<String> 的列表需要进行去重操作。

使用 Java 标准库的方式

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> inputList = new ArrayList<>();
        inputList.add("apple");
        inputList.add("banana");
        inputList.add("apple");
        inputList.add("orange");

        List<String> uniqueList = new ArrayList<>(new HashSet<>(inputList));

        System.out.println("Original List: " + inputList);
        System.out.println("Unique List: " + uniqueList);
    }
}

步骤流程:

  1. 创建一个空的 HashSet 来存储唯一元素。
  2. 遍历原始列表,将每个元素添加到 HashSet 中。由于 HashSet 不允许重复元素,这将自动去重。
  3. 创建一个新的 ArrayList,并使用去重后的 HashSet 来初始化它。

使用第三方库 Guava

添加 Maven 依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

添加 Gradle 依赖:

implementation 'com.google.guava:guava:31.0.1-jre'

示例代码:

import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;

import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> inputList = Lists.newArrayList("apple", "banana", "apple", "orange");

        List<String> uniqueList = ImmutableList.copyOf(inputList).stream().distinct().collect(Collectors.toList());

        System.out.println("Original List: " + inputList);
        System.out.println("Unique List: " + uniqueList);
    }
}

步骤流程:

  1. 使用 Lists.newArrayList() 创建一个可变列表。
  2. 使用 ImmutableList.copyOf() 创建一个不可变列表,然后通过 stream().distinct().collect(Collectors.toList()) 操作进行去重。

使用 Java 8 的 Stream

import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> inputList = List.of("apple", "banana", "apple", "orange");

        List<String> uniqueList = inputList.stream().distinct().collect(Collectors.toList());

        System.out.println("Original List: " + inputList);
        System.out.println("Unique List: " + uniqueList);
    }
}

步骤流程:

  1. 使用 List.of() 创建一个不可变列表。
  2. 使用 stream().distinct().collect(Collectors.toList()) 操作进行去重。

这些是几种常见的 Java 列表去重方法,它们都有不同的适用场景和优劣势。选择适合你需求的方法并根据示例代码进行实现即可。

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