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 ...
随机推荐
- memcache 启动 储存原理 集群
一. windows下安装启动 首先将memcache的bin目录加入到Path环境变量中,方便后面使用命令: 然后执行 memcached –dinstall 命令安装memcache的服务: 然后 ...
- yii框架开启事务
public function actionAdd() { $model = new Goods(); $model->setScenario('insert'); if ($model-> ...
- ssm开发关于web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...
- 使用questionsModel.values()后不能获取模型中的属性对应的外键属性值的解决方式
class QuestionsModel(models.Model): author = models.ForeignKey(FrontUserModel,null=True) content = m ...
- Weka学习 -- StringToWordVector 源代码学习(1)
代码整个运行流程 參数设置 input数据,设置数据格式 batchFinished(),处理数据(Tokenzier,Stemming,Stopwords) determineDictionary( ...
- 谈谈单元測试之(二):測试工具 JUnit 3
前言 上一篇文章<为什么要进行烦人的单元測试?>讨论了一下现阶段软件开发中,程序猿们測试情况的现状.这篇文章中,我打算介绍一下单元測试的工具(插件).而且推荐大家以后在开发中,真正的用上单 ...
- 结合源代码分析android的消息机制
描写叙述 结合几个问题去看源代码. 1.Handler, MessageQueue, Message, Looper, LocalThread这5者在android的消息传递过程中扮演了什么样的角色? ...
- spring框架整合springMVC时关于AOP无法切入的问题
最开始springMVC的配置为: spring的配置为: 分析可知道spring的配置正确,由于在springmvc中已经扫描了@Controller相关的注解,所以就不需要再次扫描了,由于spri ...
- Hello Docker
Docker: Build, Ship, and Run Any App, Anywhere 在任何地方构建.交付和运行任何应用 1. 引言 最近简单的学习了下Docker,本文先简要梳理下Docke ...
- [笔记]使用Keepalived实现Nginx主从热备
HA(High Available), 高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点. 1.1. 高可靠软件keepalived keepaliv ...