变量“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 –
对不起,我的意思是最后的编码部分正在工作(即它将编译和运行),但它允许在最终输出中重复(未显示)。 –