这是我第一次问这个问题。
我想用10个从0到9的唯一整数做一个数组列表。我做下一步:
创建空arraylist
加上第一个随机数,这样我以后就可以检查是否有重复
接下来我创建新的随机int值,检查arraylist中是否已经有了这个值。如果我有-我试另一个号码,如果我没有-我加上这个号码。
如果我有10个数字,我就停止循环
我的代码:
public static void main(String[] args) {
Random rd = new Random();
ArrayList<Integer> list = new ArrayList<Integer>();
int q = rd.nextInt(10);
list.add(q);
while (true) {
int a = rd.nextInt(10);
for (int b=0;b<list.size();b++){
if (a == list.get(b)) break;
else list.add(a);
}
if (list.size() == 10) break;
}
System.out.println(list);
}
但我在控制台里看到的只是无尽的过程。
问题是-有没有其他方法可以让arraylist包含10个唯一的数字(0到9)?
2条答案
按热度按时间50pmv0ei1#
使用Java8流
0vvn1miw2#
使用
Collections.shuffle
在初始化ArrayList
带着数字。它将以线性时间运行,因为
ArrayList
是RandomAccess
.