zoukankan      html  css  js  c++  java
  • java 数组排重

    方法一:根据元素下标删除重复元素
    /*
    * 定义一个int数组,大小为10,随机数【1,10】给元素赋值 * 对数组进行排重 */ public class Demo { public static void main(String[] args) { //定义一个长度为10的数组并赋值 int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) { arr[i] = (int)(Math.random()*10+1); } System.out.println(Arrays.toString(arr)); //遍历数组,将数组当前元素与后面的元素进行比较,相等则删除 for (int i = 0; i < arr.length; i++) { for(int j = i+1;j < arr.length;j++){ //根据重复元素的下标来删除元素 if(arr[i] == arr[j]){ //定义一个删除元素后的缓存数组 int[] nArr = new int[arr.length-1]; for(int k =0;k < arr.length;k++) if(k < j){ nArr[k] = arr[k]; }else if(k > j){ nArr[k-1] = arr[k]; } //这里有一个坑,缓存数组赋值给原数组后,因下标+1可能会导致排重遗漏 arr = nArr; j--; } } } System.out.println(Arrays.toString(arr)); } }
    //方法二:该方法是根据删除具体重复元素来实现
    public
    class ArrayDemo { public static void main(String[] args) { int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) { arr[i] = (int) (Math.random() * 10 + 1); } int[] nArr = new int[arr.length]; //定义一个下标 int index = 0; while(true){ //获取到arr第一个元素 int num = arr[0]; //将num添加数组nArr nArr[index] = num; index++; int count = 0; //统计num在数组arr中的个数 for (int i = 0; i < arr.length; i++) { //判断 if(arr[i] == num){ count++; } } //定义一个数组,大小为arr.length - count int[] dltArr = new int[arr.length - count]; int idx = 0; for(int i = 0; i < arr.length; i++){ //判断 if(arr[i] != num){ dltArr[idx] = arr[i]; idx++; } } arr = dltArr; //退出循环的判断 if(arr.length == 0){ break; } } //定义一个数组,大小为index int[] ARR = new int[index]; for (int i = 0; i < index; i++) { ARR[i] = nArr[i]; } System.out.println(Arrays.toString(ARR)); } }
  • 相关阅读:
    IIS+PHP+MYSQL搭建
    visual studio 2013 打开失败 ,报错:未能完成操作,不支持此接口
    sql错误;The user specified as a definer ('tester'@'%') does not exist
    mysql报错:You must reset your password using ALTER USER statement before executing this statement.
    win 7下安装mysql zip格式
    微信小程序注册使用流程
    软件风险
    成熟度等级CMM
    软件工程活动
    tomcat
  • 原文地址:https://www.cnblogs.com/wwjdx/p/6443699.html
Copyright © 2011-2022 走看看