判斷陣列中是否存在重複的元素
阿新 • • 發佈:2019-01-05
我們經常遇到這樣的問題,判斷一個數組中是否含有重複的元素,解決的辦法通常有許多種,這裡介紹一種常用的思路。
判斷陣列中元素是否重複,則需要對陣列中的元素進行兩兩比較,如果有任意一組元素相等,則該陣列中的元素存在重複,如果任意一組元素都不想等,則表示陣列中的元素不重複。
實現思路:我們假設陣列中的元素不重複,兩兩比較陣列中的元素,使用陣列中的第一個元素和後續所有元素比較,接著使用陣列中的第二個元素和後續元素比較,依次類推實現兩兩比較,如果有一組元素相同,則陣列中儲存重複,結束迴圈。把比較的結果儲存在一個標誌變數裡,最後判斷標誌變數的值即可。/** * 判斷整型陣列中是否含有重複的元素 * @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("陣列含有重複的元素"); } }
執行一下程式,看結果如何
這裡初始化了兩個陣列,其中一組含有重複元素,別一組不含,輸出結果顯示符合預期。