【发布时间】:2026-02-19 15:55:02
【问题描述】:
谁能告诉我如何一次从一个数组中挑选几个不同的随机数? 例如,有一个 long int 数组。我想从中挑选7个数字。所有数字不能相同,并按递增顺序排序。
Random random = new Random();
int a = mixColor[random.nextInt(mixColor.length)];
int b = mixCoor[random.nextInt(mixCoor.length)];
int c = mixCoor[random.nextInt(mixCoor.length)];
int d = mixCoor[random.nextInt(mixCoor.length)];
int e = mixCoor[random.nextInt(mixCoor.length)];
while(b!=c && c!=d && b!=d) {
b = mixCoor[random.nextInt(mixCoor.length)];
c = mixCoor[random.nextInt(mixCoor.length)];
d = mixCoor[random.nextInt(mixCoor.length)];
}
mixColor[] 和 mixCoor[] 是长整型数组。我可以这样做,但是如果我想选择更多的数字,这将非常复杂。我还需要对它们进行排序。有人有好主意吗?
【问题讨论】:
-
根据您的收藏有多大,您可以使用随机播放,然后根据需要选择前几个元素。您可能想要对此进行基准测试 - 您的集合可能足够大,并且 shuffle 可能会很慢,这会取消您从中获得的简单性。这是shuffle 的规范
-
更好的方法是使用
Random编号生成并查看选择的列表是否已经在生成的索引处具有编号。然后使用Collections进行排序