如何高效使用Java去除重复数据,实现数据去重技巧详解?
- 后端开发
- 2025-09-25
- 5
在Java中,剔除相同数据的方法有很多,以下是一些常见的方法:
使用HashSet
HashSet是一个不允许重复元素的集合,可以将数组或集合中的元素放入HashSet中,自动去除重复元素。

使用LinkedHashSet
LinkedHashSet是HashSet的子类,它维护了一个双向链表,可以按照元素的插入顺序遍历。
import java.util.LinkedHashSet; import java.util.Set; public class Main { public static void main(String[] args) { Integer[] array = {1, 2, 3, 2, 4, 5, 5, 6, 7, 8, 9, 9, 10}; Set<Integer> set = new LinkedHashSet<>(); for (Integer num : array) { set.add(num); } System.out.println(set); } }
使用Arrays.sort()
对于整数数组,可以使用Arrays.sort()方法对数组进行排序,然后遍历数组,比较相邻元素,去除重复元素。
import java.util.Arrays; public class Main { public static void main(String[] args) { Integer[] array = {1, 2, 3, 2, 4, 5, 5, 6, 7, 8, 9, 9, 10}; Arrays.sort(array); Integer[] newArray = new Integer[array.length]; int j = 0; for (int i = 0; i < array.length 1; i++) { if (array[i] != array[i + 1]) { newArray[j++] = array[i]; } } newArray[j++] = array[array.length 1]; Integer[] result = Arrays.copyOf(newArray, j); System.out.println(Arrays.toString(result)); } }
使用Stream API
Java 8引入了Stream API,可以方便地对集合进行操作,以下是一个使用Stream API去除重复元素的例子:

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Integer[] array = {1, 2, 3, 2, 4, 5, 5, 6, 7, 8, 9, 9, 10}; List<Integer> list = Arrays.asList(array); List<Integer> result = list.stream().distinct().collect(Collectors.toList()); System.out.println(result); } }
使用自定义方法
可以自己编写一个方法来去除重复元素,以下是一个简单的例子:
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { Integer[] array = {1, 2, 3, 2, 4, 5, 5, 6, 7, 8, 9, 9, 10}; List<Integer> list = Arrays.asList(array); List<Integer> result = removeDuplicates(list); System.out.println(result); } public static <T> List<T> removeDuplicates(List<T> list) { List<T> resultList = new ArrayList<>(); for (T item : list) { if (!resultList.contains(item)) { resultList.add(item); } } return resultList; } }
FAQs
Q1:如何使用HashSet去除数组中的重复元素?
A1:首先创建一个HashSet,然后遍历数组,将每个元素添加到HashSet中,由于HashSet不允许重复元素,自动去除重复元素。
Q2:如何使用Stream API去除列表中的重复元素?
A2:使用Stream API的distinct()方法可以将列表中的重复元素去除,以下是一个示例代码:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 2, 4, 5, 5, 6, 7, 8, 9, 9, 10); List<Integer> result = list.stream().distinct().collect(Collectors.toList()); System.out.println(result); } }
