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 ...
随机推荐
- thinkhphp 上传文件或者图片
- Mybatis分页插件PageHelper的配置和使用方法
Mybatis分页插件PageHelper的配置和使用方法 前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分 ...
- Java集合(1)一 集合框架
目录 Java集合(1)一 集合框架 Java集合(2)一 ArrayList 与 LinkList Java集合(3)一 红黑树.TreeMap与TreeSet(上) java集合(4)一 红黑树. ...
- Java编程学习技巧和方法总结
干货:必须要有反馈,不断调整,多读书,多些笔记. 解释:不练习你以为你能掌握?笑话,只有自己根据一个个小目标不断的敲,运行,给予你反馈,这样才会真的进步. 纸上谈Java,是永远停止在口. 关于笔 ...
- Windos系统git提交
一.$ git status //查看当前项目下所有文的状态,如果第一次,你会发现都红颜色的,因为它还没有交给git/github管理. 二.$ git add . //(.)点表示当前目录下 ...
- codeforces 893B Beautiful Divisors 打表
893B Beautiful Divisors 思路: 打表 代码: #include <bits/stdc++.h> using namespace std; #define _for( ...
- 自动类型安全的.NET标准REST库refit
在SCOTT HANSELMAN 博客上看到一个好东西<Exploring refit, an automatic type-safe REST library for .NET Standar ...
- 关于在linux下清屏的几种技巧(转载-备忘)
原文地址:http://www.cnblogs.com/5201351/p/4208277.html 在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢 ...
- Linxu服务器上安装JDK小白教程
一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤 前提:需要卸载自己Linux上的jdk rpm -qa ...
- Cocos2d-x 3.2Lua演示样例UserDefaultTest(用户默认配置)
Cocos2d-x 3.2演示样例UserDefaultTest(用户默认配置) 本篇博客介绍Cocos2d-x 3.2演示样例中的UserDefaulstTest,我们在开发中可能须要用到一些默认配 ...