天天看點

判斷數組中是否存在重複的元素(java與js)

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

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

實作思路:我們假設數組中的元素不重複,兩兩比較數組中的元素,使用數組中的第一個元素和後續所有元素比較,接着使用數組中的第二個元素和後續元素比較,依次類推實作兩兩比較,如果有一組元素相同,則數組中存儲重複,結束循環。把比較的結果存儲在一個标志變量裡,最後判斷标志變量的值即可。

/**
  * 判斷整型數組中是否含有重複的元素
  * @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("數組含有重複的元素"); 
}
 }
           

運作一下程式,看結果如何

判斷數組中是否存在重複的元素(java與js)

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

js版本

//檢查人員id是否有重複
  function          checkDataRepeat(arr){
                 var falg = false; //預設不重複
                 for(var i = 0; i< arr.length-1;i++){
                     for(var j =i+1 ;j<arr.length;j++){
                         if(arr[i].userId == arr[j].userId ){
                             falg = true; //重複
                             console.log('成員資訊有重複,重複的 userId:'+arr[i].userId);
                             break;
                         }
                     }
                 }                
                 return falg;
            },