【发布时间】:2017-03-29 00:23:31
【问题描述】:
我有这个空数组列表。 我想添加 6 个随机生成的整数(1 到 6),但我不希望它被复制。 不知何故,我无法为此创建循环。 我不断得到重复的值,甚至 Array List 的大小也在不断变化。 这是我的代码。 提前致谢。
ArrayList al = new ArrayList();
int rnd = new Random().nextInt(6)+1;
while(!(al.contains(rnd))){
for(int i=0; i<=5; i++){
al.add(rnd);
rnd = new Random().nextInt(6)+1;
}
rnd = new Random().nextInt(6)+1;
}
System.out.print(al);
【问题讨论】:
-
看看
ArrayList的.contains()方法。 -
你为什么不用
Set?不允许重复 -
添加到
Set,然后转换为ArrayList。 -
将数字 1-6 放入列表中并随机播放。
-
事情就是这样。当我使用 Set ( HashSet) 时,它以升序给出输出,因为整数大小太小。它总是给出 [1,2,3,4,5,6]。我相信这就是 HashSet 的工作原理。但是,我需要无序的方式。不过感谢您的回复。我可以使用 shuffle(),但我需要它首先在我的范围内添加一个随机整数,然后创建另一个随机数,如果它不在列表中,则添加它,并重复它直到 6。没有洗牌。
标签: java loops arraylist random