變量「num」是一個二維數組。我正試圖檢查該數組,如果有任何重複。 「num」是用戶輸入。Java - 二維數組,檢查重複
我已經廣泛地瀏覽了Java文檔,並詢問了我的講座,我無法得到一個可行的答案。我理解這個概念,我的意思是做什麼,但是無法獲得正確的編碼。
這裏是我的代碼:
for(int i = 0; i < 3; i++){ //3 rows with 5 numbers each
for(int j = 0; j < 5; j++){
num[i][j] = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter value for line: " + i + " and position: "+ j));
if((num[i][j] == num[i][0]) || (num[i][j] == num[i][1]) ||(num[i][j] == num[i][2]) || (num[i][j] == num[i][3]) || (num[i][j] == num[i][4])){
if(num[i][j] != 0){
num[i][j] = Integer.parseInt(JOptionPane.showInputDialog(null, "ERROR. Enter value for line: " + i + " and position: "+ j));
}
}
}
}
我一直在使用的HashSet也試過,但我認爲,只有與一維數組的作品。
我想用這樣的事情,因爲我覺得這個我理解的最:
secret = new Random().ints(1, 40).distinct().limit(5).toArray();
但顯然不是隨機的。
我已經試過這樣:
Set<Integer> check = new HashSet<>();
Random gen = new Random();
for(int i = 0; i < 3; i++){ // 3 rows, 5 numbers
for(int j = 0; j < 5; j++){
num[i][j] = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter value for row " + i + " and position " + j));
check.add(gen.nextInt(num[i][j]));
}
}
編碼(直接高於此)的最後一節編譯和運行,但不會重複檢查。
你的問題對我來說有點不清楚。你是什麼意思*「最後一個工作,但允許重複。」*? – user2004685
清澈如泥。問題的質量與您將收到的答案的質量成正比。請閱讀http://stackoverflow.com/help/how-to-ask –
對不起,我的意思是最後的編碼部分正在工作(即它將編譯和運行),但它允許在最終輸出中重複(未顯示)。 –