java數組去重

java數組去重java

1.建立新數組,用於保存比較結果數組

2.設定隨機數組最大最小值dom

3.開始去重spa

4.計算去重所需時間code

package org.zheng.collection;

import java.util.Random;

public class ArrayTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 隨機建立數組
        int[] test = new int[100000];
        Random random = new Random();
        int max = 100000000;
        // 設定隨機數組最小值爲1
        int min = 1;
        for(int i=0;i<test.length;i++){
            int s = random.nextInt(max)%(max-min+1) + min ;
            test[i] = s;
        }
        long startTime = System.currentTimeMillis();
        // 調用去重方法
        int[] res = ArrayTest.uniqueArr(test);
        long endTime = System.currentTimeMillis();//獲取結束時間
        System.out.println("新數組法程序運行時間:" + (endTime - startTime) + "ms");
        
        long startTime2 = System.currentTimeMillis();
        // 調用去重方法
        int[] res2 = ArrayTest.uniqueArr2(test);
        long endTime2 = System.currentTimeMillis();//獲取結束時間
        System.out.println("前移法運行時間:" + (endTime2 - startTime2) + "ms");
        
    }
    public static int[] uniqueArr(int[] oldArr){
        // 創建新數組保存對比後的數據
        int[] newArr = new int[oldArr.length];
        newArr[0] = oldArr[0];
        // 設定數組索引的標記
        int index = 1;
        for(int i=1;i<oldArr.length;i++){
            boolean ret=false;
            for(int j=0;j<index;j++){
                if(oldArr[i]==newArr[j]){
                    ret=true;
                    break;
                }
            }
            // 不存在相同的數據,則新數組加一
            if(ret==false){
                newArr[index] = oldArr[i];
                index++;
            }
        }
        // 將新數組的數據複製到最近的數組用於返回
        int[] res = new int[index];
        for(int i = 0; i<index;i++){
            res[i] = newArr[i];
        }
        return res;
    }
    // 前移法
    public static int[] uniqueArr2(int[] arr){
        int index = 1;
        for(int i = 1 ;i <arr.length;i++){
            boolean ret = false;
            for(int j = 0;j<index;j++){
                if(arr[i]==arr[j]){
                    ret=true;
                    break;
                }
            }
            if(ret==false){
                arr[index]=arr[i];
                index++;
            }
            
        }
        int[] newArr = new int[index];
        for(int i = 0;i<index;i++){
            newArr[i] = arr[i];
        }
        return newArr;
    }

}
相關文章
相關標籤/搜索