21xrx.com
2024-11-05 17:20:25 Tuesday
登录
文章检索 我的文章 写文章
Java 数组删除重复数据
2023-07-05 13:28:40 深夜i     --     --
Java 数组 删除 重复数据

在Java编程中,数组是一种非常常见的数据结构。在处理数组时,经常需要去掉数组中的重复数据元素。那么,在Java中如何删除数组中的重复元素呢?下面我们将简单介绍几种常见的方法。

方法一:使用HashSet

HashSet是一种去重的容器,它具有不保证元素顺序的特点。所以,我们可以利用HashSet的去重功能来删除重复元素,将去重后的元素重新放到数组中。具体代码实现如下:


public static int[] removeDuplicates(int[] arr) {

  HashSet<Integer> set = new HashSet<>();

  for (int i = 0; i < arr.length; i++) {

    set.add(arr[i]);

  }

  int[] result = new int[set.size()];

  int j = 0;

  for (int num : set) {

    result[j++] = num;

  }

  return result;

}

方法二:使用Arrays.asList()

如果我们想保留原数组中的顺序,可以使用Arrays.asList()方法。该方法返回一个List集合,我们可以将数组转化为List后,再进行去重操作。代码示例如下:


public static int[] removeDuplicates(int[] arr) {

  List<Integer> list = new ArrayList<>();

  for (int i = 0; i < arr.length; i++) {

    if (!list.contains(arr[i])) {

      list.add(arr[i]);

    }

  }

  int[] result = new int[list.size()];

  for (int i = 0; i < list.size(); i++) {

    result[i] = list.get(i);

  }

  return result;

}

方法三:使用双重循环

除了以上两种方法,我们还可以使用双重循环来实现数组去重。具体实现代码如下:


public static int[] removeDuplicates(int[] arr) {

  int length = arr.length;

  for (int i = 0; i < length; i++) {

    for (int j = i + 1; j < length; j++) {

      if (arr[i] == arr[j]) {

        arr[j] = arr[length - 1];

        length--;

        j--;

      }

    }

  }

  int[] result = new int[length];

  for (int i = 0; i < length; i++) {

    result[i] = arr[i];

  }

  return result;

}

以上就是在Java中删除数组中的重复元素的常用方法。我们可以根据自己的需求选择适合自己的方法来实现数组去重操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复