java數組去重

來源:互聯網
上載者:User

標籤:i++   儲存   設定   start   next   java   generate   oid   index   

java數組去重

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

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

3.開始去重

4.計算去重所需時間

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

 

 

  

java數組去重

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.