贴一下我写的吧,只是用到数组知识
package com.itheima;
//*7、 数组去重复,例如: 原始数组是{4,2,4,6,1,2,4,7,8},得到结果{4,2,6,1,7,8}
思路:
1.新建一个长度和原数组长度相同的空数组,
2.依次取出原数组中的数和新数组的每个数做比较,如果有就下一个数做比较,没有就把数放到新数组
并且定义一个变量记录不重复数字的个数
3.遍历完得到的新数组中为不重复数组,但是后面会有空的位置,再新建一个数组,长度为不重复数字的个数,将第二个数组复制到新数组.
public class Test7 {
public static void main(String[] args) {
int[]arr1={1,2,3,4,5,6,7,8,9,9};//原始数组arr1
int[]arr2=new int[arr1.length];//新建数组arr2用来接收不重复数字,长度和原数组相同,因为可能原数组全部都不重复.
int count=1;//记录不重复的数字个数
arr2[0]=arr1[0];//将第一个数放进新数组
loop2:
for(int i=0;i<arr1.length;i++){//取出arr1 的每个数
for(int j=0;j<count;j++){
if(arr2[j]!=arr1[i]){//如果arr2 中没有arr1 取出的数字,把这个数字放进arr2,计数器加一
if(j==count-1){
arr2[count]=arr1[i];
count++;
}
continue ;//放完继续下一个arr1中的数
}else{
continue loop2;//有重复的,直接再来一轮
}
}
}
int arr3[]=new int[count];//因为arr2 后面有空位,去掉空位复制新数组,新数组就是不重复的
for(int i=0;i<count;i++){
arr3[i]=arr2[i];
}
print(arr1);//
System.out.println();
print(arr3);
}
public static void print(int arr[]){//打印数组函数
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
|