欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将一个数组中重复的元素去除,并且返回一个新数组

程序员文章站 2024-01-06 14:18:52
...
public static void main(String[] args) {
		// 声明一个数组
		int[] arr = {1, 7, 7, 4, 5, 1, 1, 3, 3, 6, 9};
        // 打印一下去重前的数组
		System.out.println("数组去重前:" + Arrays.toString(arr));
		
		int[] newArr = deleteRepeat(arr);
		System.out.println("数组去重后:" + Arrays.toString(newArr));
	}
	
	public static int[] deleteRepeat(int[] arr) {
		int[] Arr = new int[arr.length]; 
		// 先对原数组进行排序
		Arrays.sort(arr);
		// 为新数组声明一个索引
		int a = 0;
		for (int i = 0; i < arr.length; i++) {
			// 声明一个boolean类型的标记,每次都要进行重置
			boolean xiabiao = true;
			// 嵌套内层循环将原数组元素逐个比较,每次比较都是前一个元素与后一个元素的比较(i :i+1)
			for (int j = i + 1; j < arr.length; j++) {
				// 判断元素值是否重复,若重复判断为false,则跳出当前层循环,不保存重复的元素值
				if (arr[i] == arr[j]) {
					xiabiao = false;
					break;
				}
			}
			// 判断的结果,若xiabiao = true成立,将原数组元素赋给新数组,并且赋值完成之后下标自增
			if (xiabiao) {
				Arr[a] = arr[i];
				a ++;
			}
		}
		// 再次定义一个新数组,使用Arrays.copyOfRange的方法拷贝去重之后的数组
		// (这一步的意义是因为,如果直接传回去重后的数组得到的值是[1, 3, 4, 5, 6, 7, 9, 0, 0, 0, 0] 有0 就很难看,重新拷贝之后将多余的默认值删去)
		int[] newarrs = Arrays.copyOfRange(Arr, 0, a);
		// System.out.println(Arrays.toString(newarrs));
		// 返回数组
		return newarrs;
		
	}

相关标签: Java java eclipse

上一篇:

下一篇:

推荐阅读