zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }

      

  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/zhengwenqiang/p/7706834.html
Copyright © 2011-2022 走看看