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;
    }
}
java数组去重的更多相关文章
- (PASS)JAVA数组去重 三种方法 (不用集合)
		
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...
 - (网页)java数组去重总结(转)
		
转自CSDN: 1.背景 根据不同的业务逻辑,经常会遇到数组中存在多个重复元素的场合,总结了下数组的排序,留个记录. 2.实现方法 总结了四种方法,接下来进行展示 1.方法一 //数组去重方法一 ...
 - Java数组去重(利用数组,不借助集合)
		
今天有个同学问我说老师,Java里边数组怎么去重,在不借助List集合的情况下,最后呢我整理了一下,打算发一篇博文,希望能帮助到有用的人,大佬绕过 public static void arrUniq ...
 - java 数组去重总结
		
如果一个数组中有重复元素,用什么方法可以去重?有其他方法继续更新 一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> ...
 - Java数组去重的方法
		
//第一种方式:最开始想到的是利用Set集合的不可重复性进行元素过滤 public static Object[] oneClear(Object[] arr){ Set set = new Has ...
 - 数组去重Demo引出的思考
		
package com.pers.Stream; import java.util.*; import java.util.stream.Collectors; import java.util.st ...
 - 58同城笔试题:数组去重;分饼干(分糖果);最小路径和(leetcode64)
		
1. 数组去重 题目描述 /** * 有序数组去重 * 输出最终的数字个数 * 输入:1,2,2 * 输出:2 * @author Turing * */ 代码 import java.util.*; ...
 - js  数组去重求和 (转载)
		
方法一:js数组id去重,value值相加问题 来源:https://www.jianshu.com/p/8f79e31b46ed // js let arr = [ { id: 1, value: ...
 - LeetCode 80,不使用外部空间的情况下对有序数组去重
		
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第49篇文章,我们一起来看LeetCode的第80题,有序数组去重II(Remove Duplicates fr ...
 
随机推荐
- javascript的BOM,DOM对象
			
BOM对象 window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: 控制浏览器窗口的.使用上讲: window对象不需要创建对象,直接使 ...
 - ASP.NET Core 一步步搭建个人网站(2)_一键部署和用户注册登录
			
俗话说,磨刀不费砍柴工.为了更方便的进行项目管理,我们先将个人网站项目配置一下,满足以下2个目标: VS2017中支持Git存储库,绑定Github项目,实现本地VS程序与线上Github一键代码提交 ...
 - unity中调用其他脚本函数的方法(小白之路)
			
第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名().很不实用-- 第二种,GameObject.Find("脚本所在物体名").SendMessage(& ...
 - c专家编程摘录
			
C专家编程摘录 c操作符的优先级 有时一些c操作符有时并不会像你想象的那样工作. 下方表格将说明这个问题: 优先级问题 表达式 期望的情况 实际情况 . 优先级高于* *p.f (*p).f *(p. ...
 - HDU1541--Stars(树状数组)
			
Stars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
 - spring的aop详解
			
一.aop术语 1.连接点joinpoint: 程序执行的某个特定位置:如类开始初始化之前.类初始化之后.类某个方法调用前.调用后等.Spring仅支持方法的连接点,即仅能在方法调用前.方法调用后以及 ...
 - 》》QQ-注册
			
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - js----数组处理之splice(有js原始addClass方法哦)
			
上次写了一个轮播的方法:http://blog.csdn.net/stronglyh/article/details/46833499 由于别人问我的时候,给了我html.于是乎我就看到了页面中引用了 ...
 - 天津政府应急系统之GIS一张图(arcgis api for flex)解说(三)显示地图坐标系模块
			
config.xml文件的配置例如以下: 1 2 <widget left="3" bottom="3" config="widgets/Coo ...
 - 联动加入redmine的wik
			
<? php error_reporting(E_ERROR); date_default_timezone_set('Asia/Shanghai'); $red_server = " ...