JAVA開發-功能函數-一個函數清除該數組的重複元素(手寫)
1.目前有數組”int[]
arr = {11,2, 4, 2, 10, 11},定義一個函數清除該數組的重複元素,返回的數組不準浪費長度。
思想:
1.先利用冒泡排序思想找到數組arr中重複元素個數n,可以得到新數組newarr的長度arr.length - n;
2.把數組arr中不重複的元素放入新數組newarr中(這個正常人都能想到);
3.那麼如何將不重複的元素放入新數組newarr中?利用if來判斷,方法如下:
4.兩個循環遍歷,將數組arr中的每一個元素,依次放入新數組newarr中,加個過濾器(if判斷:是否,放入新數組newarr中的元素與之前放入的元素重複, 重複,高舉旗幟,break結束循環)
5.代碼如下:
public class Demo {
public static void main(String[] args){
System.out.println("王者歸來!");
int[] arr = {11,2,4,2,10,11};
System.out.println("該數組重複的數有:"+clear(arr)+"個");
}
public static int clear(int[] a){
int n=0;
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]==a[j]){
n++;
}
}
}
int[] newarr = new int[a.length-n];
int index=0;
for(int i=0;i<a.length;i++){
boolean flag = false;
for(int j=0;j<newarr.length;j++){
//過濾:把原數組的每一個元素與放入新數組的元素進行比較
if(a[i]==newarr[j]){
flag = true;
break;
}
}
//第一遍:就沒有相等的
if(flag == false){
//index先用再加,臥槽!
newarr[index++]=a[i];
}
}
for(int i=0;i<newarr.length;i++){
System.out.print(" "+newarr[i]);
}
return n;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.