android:生成无重复的随机数

有人可以帮助我制定一种无需重复在Android中生成随机数的方法吗?最大数量是:prjcts.size();这是我的JSON数组。并且返回值应为整数。

我已经拥有的是: int i = (int)(prjcts.size() *

Math.random());我将方法强制转换了3次,因为我需要3个随机生成的数字。它有效,但是我不知道如何避免重复。因此,这3个数字彼此之间不会相同。

谢谢

回答:

您是否尝试过仅使用Math.random()?

只要做一些铸造魔术,您就可以轻松开始了:

int index = (int)((double)prjcts.size() * Math.random());

如果要防止重复,则可以创建一个包含所有可能索引的列表。

int max = prjcts.size();

List<int> indices = new ArrayList<int>(max);

for(int c = 0; c < max; ++c)

{

indices.add(c);

}

然后,每次需要随机索引时,只需从列表中选择一个随机项目,完成后从列表中将其删除

int arrIndex = (int)((double)indices.size() * Math.random());

int randomIndex = indices.get(arrIndex);

indices.remove(arrIndex);

randomIndex 现在保证是JSON列表的从未使用过的索引。

以上是 android:生成无重复的随机数 的全部内容, 来源链接: utcz.com/qa/404400.html

回到顶部