Java 是否可以在不重复出现值的情况下打印此2D数组?
这是我当前的随机2D数组,我需要使每个数组打印在参数中没有重复值。我已经尝试过其他帖子,但没有一篇涉及多维数组,特别是Math.random 还有,我排列这个数组值表的方式可能吗?稍后,我将需要能够测试他们的用户输入。 谢谢你抽出时间Java 是否可以在不重复出现值的情况下打印此2D数组?,java,arrays,multidimensional-array,random,Java,Arrays,Multidimensional Array,Random,这是我当前的随机2D数组,我需要使每个数组打印在参数中没有重复值。我已经尝试过其他帖子,但没有一篇涉及多维数组,特别是Math.random 还有,我排列这个数组值表的方式可能吗?稍后,我将需要能够测试他们的用户输入。 谢谢你抽出时间 public static void main(String[] args) { System.out.println("B I N G O"); int[][] board = new int[5][5]; for(int i
public static void main(String[] args) {
System.out.println("B I N G O");
int[][] board = new int[5][5];
for(int i = 0; i < board.length; i++){
for(int j =0; j <board.length; j++){
board[0][j] = (int)(Math.random() *15) +1;
board[1][j] = (int)(Math.random() *15) +16;
board[2][j] = (int)(Math.random() *15) +31;
board[2][2] = 0;
board[3][j] = (int)(Math.random() *15) +46;
board[4][j] = (int)(Math.random() *15) +61;
System.out.printf("%-3s", board[j][i]);
}
System.out.println("");
}
}
publicstaticvoidmain(字符串[]args){
System.out.println(“B I N G O”);
int[][]板=新int[5][5];
对于(int i=0;i创建一个包含0、1、2、3、…#行*#列中可能的数字的列表
选择一个介于0和当前列表最大长度之间的随机数“randomInteger”
将列表[randomNumber]分配给当前板[i][j],并从列表中删除该数字
同样,在删除列表中的所有数字之前也要这样做
您很可能会达到预期的结果。尝试使用ArrayList保留所有使用的整数
import java.util.ArrayList;
import java.util.Random;
public class Solution {
static ArrayList<Integer> random=new ArrayList<Integer>();
private static Random r = new Random();
public static void main(String[] args) {
System.out.println("B I N G O");
int[][] board = new int[5][5];
for(int i = 0; i < board.length; i++){
for(int j =0; j <board.length; j++){
if(j==0)
board[i][j] = getUniqueRandom(15, 1);
else if(j==1)
board[i][j] = getUniqueRandom(30, 16);
else if(j==2)
board[i][j] = getUniqueRandom(45, 31);
else if(j==3)
board[i][j] = getUniqueRandom(60, 46);
else if(j==4)
board[i][j] = getUniqueRandom(75, 61);
if(i==board.length/2 && j==board.length/2) board[i][j] = 0;
System.out.printf("%-3s", board[i][j]);
}
System.out.println("");
}
}
static int getUniqueRandom(int max, int min){
int num = r.nextInt(max-min+1) + min;
while (random.contains(num)) {
num = r.nextInt(max-min+1) + min;
}
random.add(num);
return num;
}
}
import java.util.ArrayList;
导入java.util.Random;
公共类解决方案{
静态ArrayList random=新ArrayList();
私有静态随机r=新随机();
公共静态void main(字符串[]args){
System.out.println(“B I N G O”);
int[][]板=新int[5][5];
对于(int i=0;i 对于(int j=0;j所有维度。因此在board[0][0]上。B列下的第一个数字是board[0][4]哪一个是B列下的最后一个数字。对于打印的每个字母,依此类推。所以基本上放弃我创建的嵌套for循环?因为如果它是多维数组,那么在我尝试根据值测试用户输入时,它会给我带来问题?它像一个符咒一样工作,我为此彻夜未眠。找不到任何地方在Stack/Google上,如何将我的穴居人代码转换成可以工作和精简的代码。我已经纠正了它,现在我正在研究一种用户输入方法,它可以根据数组检查输入是否有宾果游戏。