import java.util.Arrays; /* * 作用: 去除一个数组中的重复元素,以不重复的形式输出 * 实例: 定义一个int类型的一维数组,内容为{6,2,9,6,1,2,6,7,8} * 去除上面定义的数组中的重复元素,打印最终结果{6, 2, 9, 1, 7, 8}、 * 思路: 定义一个与原数组长度相同的数组,将原数组中数一个个取出放入 * 放入前执行判断,若无重复则,将其添加进数组,并记录添加次数 * 返回这个数组新添加的位数 */ public class QuChuChongFuYuanSu { public static void main(String[] args) { int[] arr = {6,2,9,6,1,2,6,7,8}; int[] newarr = a(arr); show(newarr); } public static int[] a(int[] arr){ //定义新数组 int[] arr0 = new int[arr.length]; //外层循环,取出原数组的数,定义一个数记录添加了几次 int sum = 0; for(int i = 0; i < arr.length; i++){ if( i == 0) arr0[0] = arr[i]; //放前判断,遍历新数组,创建一个数存储是否有重复元素,默认无重复 boolean have = false; for( int arr1 : arr0){ if( arr1 == arr[i]){ have = true; break; } } //若无重复,have依旧为false就添加 if(!have){ arr0[sum] = arr[i]; sum++; } } //全部添加完毕返回一个阶段到sum的数组 return Arrays.copyOfRange(arr0, 0, sum); } public static void show(int[] arr){ System.out.print("{"); for(int i = 0; i < arr.length - 1; i++){ System.out.print(arr[i] + ","); } System.out.println(arr[arr.length - 1] + "}"); } } |