📜  从数组中删除重复元素的Java程序(1)

📅  最后修改于: 2023-12-03 14:49:25.220000             🧑  作者: Mango

Java程序:从数组中删除重复元素

在Java中,有时候需要从数组中删除重复元素。这可以通过创建一个新数组来实现。以下是一个简单的Java程序,用于从数组中删除重复元素:

import java.util.ArrayList;
import java.util.Arrays;

public class RemoveDuplicates {
    public static void main(String[] args) {
        int[] arr = {1, 2, 2, 3, 4, 4, 5};
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        for (int i = 0; i < arr.length; i++) {
            if (!list.contains(arr[i])) {
                list.add(arr[i]);
            }
        }
        
        int[] newArr = new int[list.size()];
        for (int i = 0; i < newArr.length; i++) {
            newArr[i] = list.get(i);
        }
        
        System.out.println(Arrays.toString(newArr));
    }
}

该程序使用了Java的ArrayList类来存储非重复的元素。它首先迭代原始数组,如果该元素不在新列表中,则添加该元素。最后,将ArrayList转换为原始数组并将其打印出来。

此方法还可以通过使用HashSet类来实现。使用HashSet类的主要优点是速度更快。以下是使用HashSet的Java程序:

import java.util.HashSet;
import java.util.Arrays;

public class RemoveDuplicates2 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 2, 3, 4, 4, 5};
        HashSet<Integer> set = new HashSet<Integer>();
        
        for (int i = 0; i < arr.length; i++) {
            set.add(arr[i]);
        }
        
        int[] newArr = new int[set.size()];
        int i = 0;
        for (Integer val : set) {
            newArr[i] = val;
            i++;
        }
        
        System.out.println(Arrays.toString(newArr));
    }
}

该程序使用Java的HashSet类来存储非重复的元素。它首先迭代原始数组,将每个元素添加到HashSet。最后,将HashSet转换为原始数组并将其打印出来。

但是需要注意的是,HashSet类的不足之处是它不保留元素的顺序。如果需要保留元素的顺序,则需要转换为ArrayList或使用java.util.LinkedHashSet类。