在Java中删除数组中的重复数据,可以使用以下几种方法:
1. 使用Java 8的Stream API:
import java.util.Arrays;import java.util.stream.Collectors;public class Main {public static void main(String[] args) {int[] array = {1, 2, 3, 2, 1, 4, 5, 4};int[] distinctArray = Arrays.stream(array).distinct().toArray();System.out.println(Arrays.toString(distinctArray)); // 输出 [1, 2, 3, 4, 5]}}
2. 使用HashSet:
import java.util.HashSet;import java.util.Set;public class delete_repeat_1 {public static void main(String[] args) {int[] array = {1, 2, 1, 1, 2, 3, 4, 4, 5};Setset = new HashSet<>(); for (int i = 0; i < array.length; i++) {set.add(array[i]);}int[] arr = set.stream().mapToInt(Integer::intValue).toArray();System.out.println(Arrays.toString(arr)); // 输出 [1, 2, 3, 4, 5]}}
3. 使用TreeSet(有序集合,注意需要额外空间存储元素):

import java.util.TreeSet;public class RemoveDuplicates {public static int[] removeDuplicates(int[] array) {TreeSetset = new TreeSet<>(); for (int num : array) {set.add(num);}int[] result = new int[set.size()];int i = 0;for (int num : set) {result[i++] = num;}return result;}public static void main(String[] args) {int[] array = {1, 2, 3, 2, 4, 3, 5, 6, 4};int[] result = removeDuplicates(array);System.out.println("去除重复元素后的数组:");for (int num : result) {System.out.print(num + " ");}}}
4. 使用List集合和contains方法:
import java.util.ArrayList;import java.util.List;public class RemoveDuplicates {public static int[] removeDuplicates(int[] array) {Listlist = new ArrayList<>(); for (int num : array) {if (!list.contains(num)) {list.add(num);}}int[] result = new int[list.size()];for (int i = 0; i < list.size(); i++) {result[i] = list.get(i);}return result;}public static void main(String[] args) {int[] array = {1, 2, 3, 2, 4, 3, 5, 6, 4};int[] result = removeDuplicates(array);System.out.println("去除重复元素后的数组:");for (int num : result) {System.out.print(num + " ");}}}
以上方法都可以有效地去除数组中的重复元素,你可以根据具体需求选择合适的方法。需要注意的是,使用Set集合去重会丢失原始数组的顺序,而使用List集合和contains方法可以保留原始顺序。
