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 ...
随机推荐
- Ubuntu下删除VMware的方法
一般我们都装的是Vmware workstation版的,所以,我们在终端下输入 sudo vmware-installer -u vmware-workstation 然后就会弹出vmware的卸载 ...
- ideal中如何添加几个不同的项目在同一个idea页面显示(同一个窗口显示多个工程)
今天,我遇到了一个问题,就是同事给了我一些项目,我下载了之后,项目有点多,然后想把这些项目都放到一个里面,所以我就采取了添加module的方式进行添加,首先先看一下我们的四个项目, 我们就想实现在一个 ...
- apache通过AD验证
## apache通过AD验证 #yum install httpd mod_authz_ldap#安装apahce的ldap模块yum install mod_authz_ldap -y #配置ap ...
- 利用spring,实现package下的类扫描
项目中需要用到包扫描的情况是很多的,一般是在项目初始化的时候,根据一些条件来对某个package下的类进行特殊处理.现在想实现的功能是,在一个filter或interceptor初始化的时候,扫描指定 ...
- 为什么要初始化CSS?
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异. 当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下 ...
- Jarvis OJ - [XMAN]level2 - Writeup
简单利用"/bin/sh"夺权 简单看一下 放到ida中发现了"/bin/sh"串,和system函数,可以利用== 所以只要在vuln函数返回时跳转到syst ...
- django同时查询两张表的数据,合并检索对象返回
原始需求: 1.一篇文章内容分N个版块,每篇文章的版块数量不同. 2.有个文章搜索功能,需要同时搜索标题和内容. 实现思路: 1.由于每篇文章的内容版块数量不同,因此将每个文章的标题和内容分开存入2张 ...
- froms中判断数据长度自定义提示
class NumberForm(BaseForm): querynumber = forms.CharField(error_messages={'required':u'请输入手机号'}) def ...
- 版本号控制-GitHub
前面几篇文章.我们介绍了Git的基本使用方法及Gitserver的搭建.本篇文章来学习一下怎样使用GitHub. GitHub是开源的代码库以及版本号控制库,是眼下使用网络上使用最为广泛的服务,Git ...
- Android后台执行的定时器实现
Android后台运行定时器,方便我们运行定位跟踪等任务需求. 以下简要说明实现Android后台定时器的要点, 文章末尾能够下载到project代码,可直接编译运行. AndroidManifest ...