public static int[] changemethodone(int src[]){
int length=src.length;
int[] taget=new int[length];
int index=0;
taget[0]=src[0];
for(int i=1;i<length;i++){
if(taget[index]!=src[i]){
index++;
taget[index]=src[i];
}
}
return taget;
}
在上面的方法中,声明了一个与传入数组长度相等的数组,根据循环判断是否有重复的数字,滨江不重复的数字放入声明的数组中,
如果传入数组中存在重复的数字,那么这个数组的长度应会小于传入数组的长度,但是这样就造成了数组长度的浪费。
public static int[] changemethodtwo(int src[]){
int length=src.length;
int[] tagetindex=new int[length];
int tagetlength=length;
for(int i=0;i<length;i++){
tagetindex[i]=0;
}
for(int j=1;j<length;j++){
if(src[j]==src[j-1]){
tagetindex[j]=1;
tagetlength--;
}
}
int[] target=new int[tagetlength];
int index=0;
for(int k=0;k<length;k++){
if(tagetindex[k]==0){
target[index++]=src[k];
}
}
return target;
}
在上面的方法中,也声明了一个与传入数组长度相等的数组tagetindex,值初始化全为0.循环进行判断重复数字的个数,
如果存在重复数字则数组tagetindex元素赋值为1,然后在声明一个数组target,长度为(tagetindex.length-重复数字个数)。
当tagetindex数组中元素为0的,将数组src元素下表等于tagetindex元素中部位0的下标的元素值赋值给target。
输入数组{1,1,2,3,4,5,6,9,9,12,53}
得到的结果为
第一种方法去掉数组中重复数字结果:
1 2 3 4 5 6 9 12 53 0 0
第二种方法去掉数组中重复数字结果:
1 2 3 4 5 6 9 12 53 |
|