欢迎访问宙启技术站
智能推送

利用Java函数从数组中删除重复的元素。

发布时间:2023-06-30 18:44:02

在Java中,我们可以使用函数来删除数组中的重复元素。下面是一种常见的方法:

1. 创建一个新的ArrayList对象来存储不重复的元素。

ArrayList<Integer> uniqueList = new ArrayList<>();

这里以整数数组为例,你可以根据需要使用不同的数据类型。

2. 使用循环遍历数组,将元素添加到uniqueList中,但在添加之前先检查是否已经存在该元素。

for (int i = 0; i < arr.length; i++) {
  if (!uniqueList.contains(arr[i])) {
    uniqueList.add(arr[i]);
  }
}

3. 将uniqueList中的元素重新转换为数组。

int[] uniqueArr = new int[uniqueList.size()];
for (int i = 0; i < uniqueList.size(); i++) {
  uniqueArr[i] = uniqueList.get(i);
}

完整的代码如下所示:

import java.util.ArrayList;

public class RemoveDuplicates {

  public static int[] removeDuplicates(int[] arr) {
    ArrayList<Integer> uniqueList = new ArrayList<>();
    for (int i = 0; i < arr.length; i++) {
      if (!uniqueList.contains(arr[i])) {
        uniqueList.add(arr[i]);
      }
    }
    int[] uniqueArr = new int[uniqueList.size()];
    for (int i = 0; i < uniqueList.size(); i++) {
      uniqueArr[i] = uniqueList.get(i);
    }
    return uniqueArr;
  }

  public static void main(String[] args) {
    int[] arr = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5};
    int[] uniqueArr = removeDuplicates(arr);
    for (int i = 0; i < uniqueArr.length; i++) {
      System.out.print(uniqueArr[i] + " ");
    }
  }
}

运行上述代码,将输出结果为:1 2 3 4 5

这个方法的时间复杂度为O(n),因为我们只对数组进行了一次遍历,同时使用了ArrayList的contains方法来检查重复。如果数组是已排序的,我们可以使用双指针方法来进一步优化算法。