/*
定义一个int类型的一维数组,如:{6,2,9,6,1,2,6,7,8},
去除上面定义的数组中的重复元素,打印最终结果{6, 2, 9, 1, 7, 8}
*/
class Text1 {
public static void main(String[] args) {
int[] arr = {6,2,9,0,1,2,6,7,8,1,7,3,45,45,3,4};
int count = 0; //用来记录重复数字的次数
//外面两个循环是用arr[i]分别和它后面的数比较
m:for (int i = 0;i<arr.length;i++) {
for (int j = i+1;j<arr.length ;j++) {
//该循环用来判断当arr[i]的数字与前面的一样就不比较了,跳过
//如arr[3] = arr[0] = 6,这时候arr[3]就不用去跟后面的数比较了
for (int k = 0;k<i ;k++ ) {
if (arr[i] == arr[k]) {
continue m;
}
}
//出现相同的情况则count加一
if (arr[i] == arr[j]) {
count++;
}
}
}
//定义一个数组来接收不重复的数字,之前数组的长度减去重复的次数就是
//新数组的长度。
int[] newArr = new int[arr.length-count];
//定义一个初始索引
int index = 0;
n:for (int i = 0;i<arr.length;i++ ) {
//这个循环的意思是当arr[i]的值与数组newArr中已经
//被赋过值的元素就不要往下走了,以免重复赋值。
//如newArr[0]赋值后为6,所以当走到arr[6] = 6的时候
//就跳过,不往下执行赋值操作
for (int j = 0;j<index;j++) {
if (arr[i] == newArr[j]) {
continue n;
}
}
//这里就是为newArr数组元素赋值的地方
//每赋值一次索引加一
newArr[index] = arr[i];
index++;
}
for (int i = 0;i<newArr.length ;i++ ) {
System.out.println(newArr[i]);
}
}
} |