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 ...
随机推荐
- js代码大全(各种方法、属性)《转载》
事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.sr ...
- 【前端开发】--js弹框
js三种弹框 一.普通弹框 这类弹框就是仅仅是个提示作用,并不会做其它操作 关键词:alert() 这个没啥好说的,就是一个弹框. 二.判断弹框 这类框有一个判断作用 关键字:conf ...
- JavaScript内置的预定义函数
javascript引擎中有一组可供随时调用的内建函数.这些内建函数包括 parseInt() 将收到的任何输入值转换成整数类型输出,如果转换失败,返回NaN parseFloat() 功能基本与p ...
- php 写程序求三个数的最大值
最简单的调用PHP自带的max函数即可:echo max(1,2,3,4,5);如果要自定义函数的话:function test($a,$b,$c){ return $a > $b ?($a & ...
- 将项目打包成jar,如何又将jar还原成项目
一.将项目打包成jar 第一步: 选择项目,鼠标右键,选择export ,出现如下 接下来就是点击Next,Next,最后点击Finish 后 会生成jar 二.将jar还原成项目 第一步 用反编译工 ...
- Postgresql中的explain
PostgreSQL为每个收到的查询设计一个查询规划.选择正确的匹配查询结构和数据属性的规划对执行效率是至关重要要的,所以系统包含一个复杂的规划器来试图选择好的规划.你可以使用EXPLAIN命令查看查 ...
- 二叉树的递归遍历 The Falling Leaves UVa 699
题意:对于每一棵树,每一个结点都有它的水平位置,左子结点在根节点的水平位置-1,右子节点在根节点的位置+1,从左至右输出每个水平位置的节点之和 解题思路:由于上题所示的遍历方式如同二叉树的前序遍历,与 ...
- Web、WCF和WS通过Nginx共享80端口
团队中的一个Web项目面对的用户网络环境多是在严格的防火墙安全条件下,通常只开放一些标准的端口如80,21等. 上线初期,因忽略了这个问题,除了Web应用是以80端口提供访问外,WCF和WS是以其他端 ...
- Linux 账号管理与 ACL 权限配置
要登陆 Linux 系统一定要有账号与口令才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限配置, 来规范出不同的群组开发项 ...
- uva 12009 - Avaricious Maryanna(暴力)
option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=3160" ta ...