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