• java数组去重


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

      

  • 相关阅读:
    斯巴鲁汽车 技术文档下载方法
    博客园 Mac Windows Linux 客户端 源码 electron 开发
    博客园 Mac客户端 1.0 源码
    博客园 Mac客户端 2.0-Beta
    Python数据分析的库
    排版助手Gidot
    离线下载pip包进行安装
    Anaconda+用conda创建python虚拟环境
    ? Install Telegram on Ubuntu via PPA
    使用BeautifulSoup删除html中的script、注释
  • 原文地址:https://www.cnblogs.com/zhengwenqiang/p/7706834.html
Copyright © 2020-2023  润新知