本帖最后由 mnxnm 于 2015-5-29 10:58 编辑
- package com.itheima;
- /**
- *
- * 5、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
- *
- * @author sman@mnxnm.com
- *
- */
- public class Test5 {
- public static void main(String[] args) {
- //数组去重复后,元素顺序没有改变,所以不能排序不能用冒泡法
-
- int[] a = { 4, 2, 4, 6, 1, 2, 4, 7, 8 };
- if (a.length > 1) { //判断元素个数是否大于1个,否则直接打印结果
- //依次取出元素与并与右面的元素比较
- for (int i = 0; i < (a.length - 1); i++) {
- for (int j = (i + 1); j < a.length;) {
- if (a[i] == a[j]) {
- //去除右面与左面重复的元素,并重新定义数组长度和元素内容
- int[] b = new int[a.length - 1];
- System.arraycopy(a, 0, b, 0, j);
- System.arraycopy(a, j + 1, b, j, b.length - j);
- a = b;
- } else {
- j++; //数组重新定以后,下标不变,元素变成新的;当新元素与左面不重复时,才比较下一个元素
- }
- }
- }
- }
- for (int k = 0; k < a.length; k++) {
- System.out.print(a[k]+ " ");
- }
- }
- }
复制代码
|