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; } }