在 Java 中,你可以使用多种方式对列表进行去重。下面我将介绍几种常见的方法,包括使用 Java 标准库和第三方库,以及它们的具体步骤流程和示例代码。
假设我们有一个 List<String>
的列表需要进行去重操作。
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);
}
}
步骤流程:
HashSet
来存储唯一元素。HashSet
中。由于 HashSet
不允许重复元素,这将自动去重。ArrayList
,并使用去重后的 HashSet
来初始化它。添加 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);
}
}
步骤流程:
Lists.newArrayList()
创建一个可变列表。ImmutableList.copyOf()
创建一个不可变列表,然后通过 stream().distinct().collect(Collectors.toList())
操作进行去重。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);
}
}
步骤流程:
List.of()
创建一个不可变列表。stream().distinct().collect(Collectors.toList())
操作进行去重。这些是几种常见的 Java 列表去重方法,它们都有不同的适用场景和优劣势。选择适合你需求的方法并根据示例代码进行实现即可。