对一个数组int[8,1,3,2,9,4,0,111,3,99,3,8,119,110]去除重复值.要求不使用java.util.*中的任何工具类。
先叙述原理,再写出代码。

解决方案 »

  1.   


    public static int[] To_re(int [] a){
    int count = 0;//用于统计重复
    for (int i = a.length -1; i >=0; i--) {
    int val = a[i];
    for (int j = 0; j < i; j++) {
    if(val == a[j]){//存在重复,数组后面整体向前移一位
    count ++;
    for(int k = i ; k < a.length -1 ; k ++){
    a[k] = a[k+1];
    }
    break;
    }
    }
    }
    int [] b = new int[a.length -count];

    System.arraycopy(a, 0, b, 0, a.length -count); return b;
    }
      

  2.   

    public static int[] getArr(int[] arr) {
        int[] temp = new int[arr.length];
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            boolean repeat = false;
            for (int j = 0; j < count; j++) {
                if (arr[i] == temp[j]) {
                    repeat = true;
                    break;
                }
            }
            if (!repeat)
                temp[count++] = arr[i];
        }
        int[] res = new int[count];
        for (int i = 0; i < count; i++)
            res[i] = temp[i];
        return res;
    }