2016-11-11 93 views
-5

我在開始Java課程。我使用掃描儀輸入創建了長度爲10的數組。現在我需要編寫一個程序來檢查數組中是否有任何元素出現多次。非常感謝指導!Java:如何確定一個數組是否有兩個相等的元素?

+0

使用任何通用搜索算法。 – Munib

+0

歡迎使用stackoverflow。請讓我們知道您嘗試了什麼以及您卡在哪裏。雖然這個問題很常見,但正確的谷歌搜索應該def給你所有的答案 –

+1

請參閱:http://stackoverflow.com/questions/3951547/java-array-finding-duplicates – Tim

回答

0

,你可以使用嵌套循環這樣

for(int i=0;i<array.length;i++) 
    { 

    for(int j=i+1;j<array.length;j++) 
     { 
      if(array[i].equals(array[j])) 
       { 
        System.out.println("Duplicate found"); 
       } 

     } 
    } 
+0

如果數組是原始類型,則不起作用,因爲原語沒有等於。 –

+0

它是爲字符串我這樣做是因爲字符串比較似乎比比較原始類型 –

1

下面的代碼應該這樣做。

import java.io.IOException; 
import java.util.*; 

public class test { 
    public static void main(String [] args) throws IOException { 

     Scanner scanner = new Scanner(System.in); 

     int[] nums = new int[10]; 

     for (int i=0;i<10;i++) { 
      nums[i] = scanner.nextInt(); 
     } 

     System.out.println(findDuplicate(nums) ? "Duplicate found" : "No Duplicates"); 

    } 

    public static boolean findDuplicate(int[] nums) { 
     for (int i=0; i < 10; i++) { 
      for (int j=0; j<10; j++) { 
       if (i!=j && nums[i] == nums[j]) { 
        return true; 
       } 
      } 
     } 
     return false; 
    } 
} 
+0

將不會工作,如果該數組是非基元類型,因爲您將不得不使用等於而不是==。 –

相關問題