像我的问题一样,我需要生成一个在范围之间具有相同对的随机数。我试图生成随机数并存储在数组中,但数字重复两次以上。我有16个随机数要在范围内生成。任何想法如何使它只生成相同的对随机数?
最佳答案
以下将完成我认为的工作:
import java.util.*;
class Randoms {
public static void main(String[] args) {
List<Integer> randoms = new ArrayList<Integer>();
Random randomizer = new Random();
for(int i = 0; i < 8; ) {
int r = randomizer.nextInt(8) + 1;
if(!randoms.contains(r)) {
randoms.add(r);
++i;
}
}
List<Integer> clonedList = new ArrayList<Integer>();
clonedList.addAll(randoms);
Collections.shuffle(clonedList);
int[][] cards = new int[8][];
for(int i = 0; i < 8; ++i) {
cards[i] = new int[]{ randoms.get(i), clonedList.get(i) };
}
for(int i = 0; i < 8; ++i) {
System.out.println(cards[i][0] + " " + cards[i][1]);
}
}
}
上面的一个示例运行给出:
1 2
8 6
4 3
3 7
2 8
6 1
5 5
7 4
希望能有所帮助。