• 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)); } }
  • 相关阅读:
    django model:auto_now_add 和 auto_now
    算法(2):数据结构
    Flask(2):登陆验证
    Flask(1):基本示例、配置文件、路由、请求和响应、模板渲染
    linux基础
    算法(1):查找&排序
    利用dispatch_once创建单例
    UIScrollView的属性总结
    ios开发 UITableViewController
    [深入浅出Cocoa]详解键值观察(KVO)及其实现机理
  • 原文地址:https://www.cnblogs.com/wwjdx/p/6443699.html
Copyright © 2020-2023  润新知