1. 程式人生 > >判斷陣列中是否存在重複的元素

判斷陣列中是否存在重複的元素

      我們經常遇到這樣的問題,判斷一個數組中是否含有重複的元素,解決的辦法通常有許多種,這裡介紹一種常用的思路。

      判斷陣列中元素是否重複,則需要對陣列中的元素進行兩兩比較,如果有任意一組元素相等,則該陣列中的元素存在重複,如果任意一組元素都不想等,則表示陣列中的元素不重複。

實現思路:我們假設陣列中的元素不重複,兩兩比較陣列中的元素,使用陣列中的第一個元素和後續所有元素比較,接著使用陣列中的第二個元素和後續元素比較,依次類推實現兩兩比較,如果有一組元素相同,則陣列中儲存重複,結束迴圈。把比較的結果儲存在一個標誌變數裡,最後判斷標誌變數的值即可。
 /**
  * 判斷整型陣列中是否含有重複的元素
  * @param arr
  */
 private void checkIsRepeat(int[] arr){
 
boolean flag = true;   //假設不重複 
for(int i = 0;i < arr.length-1;i++){ //迴圈開始元素 
    for(int j = i + 1;j < arr.length;j++){ //迴圈後續所有元素 
    //如果相等,則重複 
    if(arr[i] == arr[j]){ 
     flag = false; //設定標誌變數為重複 
     System.out.println("重複的值為:"+arr[i]);
     break;      //結束迴圈 
    } 
   } 
  } 
//判斷標誌變數 
if(flag){ 
  System.out.println("陣列沒有重複的元素"); 
}else{ 
  System.out.println("陣列含有重複的元素"); 
}
 }


執行一下程式,看結果如何


這裡初始化了兩個陣列,其中一組含有重複元素,別一組不含,輸出結果顯示符合預期。