从Int数组中删除重复(重复)的元素

奥马尔·法罗克·阿尼克(Omar Faroque Anik)

我想从数组中删除重复(重复)元素。我在这样做方面面临困难。我尝试了几种方法。任何人都可以为我找到解决方案。

Input: 3,5,6,7,3,5,3,8
Expected Output: 3 5 6 7 8

我的代码:

package com.nanofaroque.DeleteRepElementInArray;

public class DeleteElementRepetativeElement {

    public static void main(String[] args) {
        // Here is the input Array...
        int[] arr = { 3, 5, 6, 7, 3, 5, 3, 8 };
        int end = arr.length;// finding the length of the array
        for (int i = 0; i < end; i++) {
            for (int j = i + 1; j < end; j++) {
                if (arr[j] == arr[i]) {
                    for (int k = j; k < end; k++) {
                        arr[k] = arr[k + 1];
                    }
                    end--;
                } else {
                    j++;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

    }

}
布拉吉

尝试org.apache.commons.lang.ArrayUtils

从结尾删除

int[] arr = { 3, 5, 6, 7, 3, 5, 3, 8 };
int noOfItemsToBeDeleted=4;
for (int i = 0; i < noOfItemsToBeDeleted; i++) {
    if (arr.length > 0) {
        arr = ArrayUtils.remove(arr, arr.length-1);
    }
}
for (int i : arr) {
    System.out.println(i);
}

从头开始删除

int[] arr = { 3, 5, 6, 7, 3, 5, 3, 8 };
int noOfItemsToBeDeleted=4;
for (int i = 0; i < noOfItemsToBeDeleted; i++) {
    if (arr.length > 0) {
        arr = ArrayUtils.remove(arr, 0);
    }
}
for (int i : arr) {
    System.out.println(i);
}

- 编辑 -

根据您的最后一条评论,您只想从数组中删除重复的值。尝试Set<Integer>删除重复的值。

int[] arr = { 1, 2, 3, 5, 6, 7, 8, 9, 5, 4, 7, 8, 9, 3, 2, 1, 0, 3, 4, 8 };

Set<Integer> set = new LinkedHashSet<Integer>();
for (int i : arr) {
    set.add(i);
}

// new array if you need it
int[] newArray = new int[set.size()];
int index = 0;
for (int i : set) {
    System.out.print(i+" ");
    newArray[index++] = i;
}

输出:

1 2 3 5 6 7 8 9 4 0 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章