Java删除数组中重复元素

x33g5p2x  于2022-10-06 转载在 Java  
字(1.2k)|赞(0)|评价(0)|浏览(403)

在这篇文章中,我们将写一个Java程序来删除数组中重复的整数元素。

我们有很多方法可以编写逻辑来删除数组中重复的整数元素。

  • 使用临时数组
  • 使用HashSet

###使用临时数组

要从一个数组中删除重复的元素,数组必须是按排序的顺序排列。如果一个数组没有被排序,你可以通过调用Arrays.sort(arr)方法进行排序。

import java.util.Arrays;

public class DuplicateFromArray {

    public static void main(final String[] args) {

        final int[] a = { 10, 20, 30, 40, 50, 50, 10, 20 };
        Arrays.sort(a);// sorting array
       removeDuplicate(a);
    }

    private static void removeDuplicate(final int[] a) {

        final int[] temp = new int[a.length];

        int j = 0;
        for (int i = 0; i < a.length - 1; i++) {
            if (a[i] != a[i + 1]) {
                temp[j++] = a[i];
            }
        }
        temp[j++] = a[a.length - 1];

        for (int i = 0; i < j; i++) {
             a[i] = temp[i];
        }

        for (int i = 0; i < j; i++) {
             System.out.println(temp[i]);
        }
    }
}

输出:

10
20
30
40
50

使用HashSet

让我们使用HashSet提供的add()方法来删除数组中的重复部分。如果这个集合没有包含指定的元素,add()方法返回true。

import java.util.HashSet;
import java.util.Set;

public class DuplicateFromArray {

   public static void main(final String[] args) {
       final Integer[] a = {10,20,30,40,50,50,10,20};
       removeDuplicates(a);
   }
 
  private static void removeDuplicates(final Integer[] a){
      final Set<Integer> set = new HashSet<Integer>();
   
      final Integer[] temp = new Integer[a.length];
      int j = 0;
      for (final Integer element : a) {
          if(set.add(element)){
             temp[j++] = element;
          }
      }
  
      // display temp array
      for (int i = 0; i < j; i++) {
          System.out.println(temp[i]);
      }
   }
}

输出:

10
20
30
40
50

相关文章

微信公众号

最新文章

更多