変数 "num"は2D配列です。重複がある場合、その配列をチェックしようとしています。 「num」はユーザー入力です。Java - 2D配列、重複チェック
私はJavaのドキュメントを幅広く見て、私の講義に尋ねましたが、うまく答えられません。私はその概念を理解していますが、私は何をするつもりですが、コーディングの権利を得ることはできません。
は、ここに私のコードです:私もHashSetのを使用してみましたが
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));
}
}
}
}
が、私は唯一の1次元配列で動作することを考えます。
私はこのことを感じるように私はほとんど理解し、このようなものを使用したいと思います:
ランダムで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 –
を読んでください申し訳ありませんが、最後のコーディングセクションが機能しています(つまり、コンパイルと実行が行われます)が、最終出力に重複が表示されます(図示せず)。 –