0
我已經爲此編寫了代碼,但沒有奏效。如果它能夠工作,運行時間的複雜性會非常高。如何讓我的代碼找到一個數字是否在Java中的數組中重複?
for (int collumnInput=0; collumnInput < 3; collumnInput++)
{
for (int rowInput = 0; rowInput < 3; rowInput++)
{
try
{
puzzleArray[collumnInput][rowInput] = scan.nextInt();
if ((puzzleArray[collumnInput][rowInput] > 8) || (puzzleArray[collumnInput][rowInput] < 0))
{
System.out.println("Invalid 8-puzzle entered!");
System.exit(0);
}
for (int collumnCheck = 0; collumnCheck < collumnInput; collumnCheck++)//code to check for duplicates starts here.
{
for (int rowCheck = 0; rowCheck < rowInput; rowCheck++)
{
if (puzzleArray[collumnCheck][rowCheck]==puzzleArray[collumnInput][rowInput])
{
System.out.println("Invalid 8-puzzle entered!");
System.exit(0);
}
}
}
}
catch (java.util.InputMismatchException exception)
{
System.out.println("Invalid 8-puzzle entered!");
System.exit(0);
}
}
}
scan.close();
首先,這裏的代碼運行,但不檢測數組中的重複項,所以我該如何解決這個問題?第二件事是,有沒有更有效率的方法來做到這一點?我已經看到人們使用克隆和複製方法,但我不知道這些實際上是否更有效。謝謝。
對不起沒有你的意思是HashMap的? – 2014-09-30 02:43:15
@KickButtowski [HashSet](http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html)是正確的 – 2014-09-30 02:43:37
@PhamTrung如果你聲稱有什麼,請提供一些解釋,如果你是能夠:) – 2014-09-30 02:44:46