2011-09-06 205 views
-4

我想要求用戶輸入元素,但如果用戶輸入一個重複的元素,我的方法應該返回false。到目前爲止,這是我的...先謝謝你!數組重複元素

public boolean setGuess(int index, int value) // required by instructor 
{ 
    int [] guesses = new int[countVal]; //countVal is array length 
    for (int i = 0; i < guesses.length; i++) 
     for (int j = 0; j < i; j++) 
     { 
      if (guesses[i] == guesses[j]) 
       return false; 
     } 
    return true; 
} 
+6

那麼你的問題是什麼?沒有編譯?不給你輸出你想要的東西? – Swagatika

+0

我認爲問題是「我該怎麼做?」 –

+0

另外值得一提的是,你有一個內存泄漏與分配猜測,並從不刪除[]'它。 – Corbin

回答

2
boolean hasRepeatedElement = new HashSet(Arrays.asList(arr)).size() == arr.length; 
0

雖然你沒有問一個真正的問題,這是相當明顯的,你會惹上麻煩,因爲你分配一個整數數組,但從來沒有與任何東西填滿了。然後你開始尋找重複。

如果你的問題是「這不適合我」,那麼這是一個地方看。

另一個是你有一個方法稱爲setGuess這聽起來不像一個應該尋找重複的方法。它被稱爲setGuess並且是「指導者要求」的事實意味着這個任務比您在問題中要多得多。

考慮擴大的問題,那麼我就可以收回這個答案,這對評論太長....

0

更高於同一問題 1.到位guesses.length U可以的使用countVal
2.什麼是「int index, int value」參數的使用,你沒有在方法中使用。 3.聲明guesses[]在所有索引中將只有0,所以"guesses [i] == guesses[j]"沒有意義。

試着回答上述所有問題,將會幫助你更好地編寫代碼。