码迷,mamicode.com
首页 > 编程语言 > 详细

java数组去重

时间:2017-10-22 00:17:51      阅读:291      评论:0      收藏:0      [点我收藏+]

标签: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数组去重

标签:i++   保存   设定   start   next   java   generate   oid   index   

原文地址:http://www.cnblogs.com/zhengwenqiang/p/7706834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!