清除數組中的重複元素

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.運行結果:






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章