晚上好,我想用不同的数字填写一个5 x 5的表格我不希望每个列都有相同的数字我应该有限制,属于某个限制,我能做但不做知道如何避免不超过表格中的数字
int num;
int [][] array = new int [5][5];
Random r = new Random();
for (int row = 0; row < array.length; row++) {
for (int col = 0; col < array[row].length; col++) {
if(row == 0){
num =r.nextInt(15);
array[row][col]=num;
}else if(row == 1){
num =r.nextInt(31-16)+16;
array[row][col]=num;
}else if(row == 2){
num =r.nextInt(45-31)+31;
array[row][col]=num;
}else if(row == 3){
num =r.nextInt(61-46)+46;
array[row][col]=num;
}else if(row == 4){
num =r.nextInt(75-61)+61;
array[row][col]=num;
}
}
}
答案 0 :(得分:2)
对于每一行,创建一个包含它可以包含的整数的列表,然后随机播放列表(使用Collections.shuffle()
),并保留5个第一个元素。
或者,如果您的目标是为整个表格提供不同的元素,请创建一个包含矩阵可以包含的所有整数的列表,然后随机播放列表,遍历列表以填充矩阵。
答案 1 :(得分:0)
您可以获得HashSet
个数字。添加到此并且不允许重复。如果需要,使用toArray()
方法获取数组对象。
如果您仍想使用数组,那么add()
的{{1}}方法会返回HashMap
,如果该值在当前集中不存在,那么如果true
则添加如果true
那么,请到表格。
这允许您在不必随机播放的情况下向表中添加元素,即如果您想要不断更新表而不必在显示之前等待完整集。
假设您只希望数字对于表而言是唯一的,而不仅仅是行位置。