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 ...
随机推荐
- Mybatis分页插件PageHelper简单使用
一个好的讲解mybatis的博客地址http://www.jianshu.com/nb/5226994 引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句 ...
- Python的Web应用框架--Django
一:简介 python的web框架有很多,个人查了一下,有Django.Pylons. Tornado.Bottle和Flask等,其中使用人数最多的是Django,而我学习Django也是因为ope ...
- Jarvis OJ - [XMAN]level0 - Writeup
差不多最简单的pwn了吧,不过本菜鸟还是要发出来镇楼 分析一下,checksec 查看程序的各种保护机制 没有金丝雀,没有pie 执行时输出Hello,World,在进行输入,溢出嘛 开工 丢到id ...
- 自学Python全栈开发的第二次笔记(Python需要注意的地方)
好几天没写blog了,今天整理整理.写blog一定要坚持下去. Python解释器 #!/usr/bin/env python #-*-coding:utf-8-*- # 无效的内容,只 ...
- springboot(一)
1,使用springboot开发需要以下配置: : Maven | Gradle | Ant | Starters code工具:IDE | Packaged | Maven | Gradle 系统要 ...
- ubuntu14.04 升级mysql到5.7版本
Ubuntu14.04默认安装的是mysql5.5,由于开发需要支持utf8mb4,因此需要升级到mysql5.7 默认情况下,apt是无法直接升级到mysql5.7的,因此需要额外设置 首先,备份数 ...
- android UI布局
一.设置反复背景 在drawable目录下建一个mybackground.xml文件 在文件里写入: <?xml version="1.0" encoding="u ...
- 学习图像算法阶段性总结 (附一键修图Demo)
今天特别感慨.自己从决定研究图像处理.势必要做出一键修图算法. 经历了,三个多月的书籍积累,三个多月的算法调整以及优化. 人是一种奇怪的动物.当你做不到的时候,你以为做到了.自己会感觉非常爽,非常有成 ...
- 结合源代码分析android的消息机制
描写叙述 结合几个问题去看源代码. 1.Handler, MessageQueue, Message, Looper, LocalThread这5者在android的消息传递过程中扮演了什么样的角色? ...
- 基于Gulp + Browserify构建es6环境下的自动化前端项目
随着React.Angular2.Redux等前沿的前端框架越来越流行,使用webpack.gulp等工具构建前端自动化项目也随之变得越来越重要.鉴于目前业界普遍更流行使用webpack来构建es6( ...