1.需求:
目前有數組 int[ ] arr = {11,2, 4, 2, 10, 11},定義一個函數清除該數組的重複元素,返回的數組存儲了那些非重複的元素而且數組不準浪費長度。
2.分析:
(1) 確定新數組的長度。 新數組的長度=原數組的長度-重複元素個數。
(2) 在比較過程中凡是遇到了重複的元素,馬上break,該元素就不要再繼續往下比較了。
3.實例:
import java.util.*;
class Demo1{
public static void main(String[] args) {
int[] arr = {11,2, 4, 2, 10, 11};
arr = clearRepeat(arr);
System.out.println("清除重複元素的數組:"+ Arrays.toString(arr));
}
public static int[] clearRepeat(int[] arr){
//先計算出重複元素的格式:
int count = 0; //記錄重複元素的個數
for(int i = 0 ; i < arr.length-1 ; i++){
for(int j = i+1 ; j<arr.length ; j++){
if(arr[i]==arr[j]){
count++;
break;
}
}
}
//新數組 的長度
int newLength = arr.length - count;
//創建一個新的數組
int[] newArr = new int[newLength];
int index = 0 ; //新數組的索引值
//把舊數組的元素存儲到新數組中,存入新數組之前要先判斷該元素是否存在新數組中,
//如果存在了,那麼該元素就不要了。
//遍歷舊數組
for(int i = 0 ; i< arr.length ; i++){
int temp = arr[i]; //取出舊數組中的元素
boolean flag = false; //默認不是重複元素
//拿着舊數組 的元素 與新數組的每個元素比較一次。
for(int j = 0 ; j< newArr.length ; j++){
if(temp==newArr[j]){ //該元素已經存在了新數組中。
flag = true;
break;
}
}
//不是重複元素,把該元素存儲到新數組中。
if(flag == false){
newArr[index++] = temp;
}
}
return newArr;
}
}
4.運行結果: