黑马程序员技术交流社区

标题: 产生随机数代码。为什么会有重复的 [打印本页]

作者: xiaoxinxin003    时间: 2015-7-14 15:44
标题: 产生随机数代码。为什么会有重复的
  1. import java.util.*;

  2. public class RandomNumberDemo {

  3.         public static void main(String[] args) {
  4.                 System.out.println(getRandom());
  5.         }

  6.         public static List<Integer> getRandom() {
  7.                 Random rd = new Random();
  8.                 ArrayList<Integer> al = new ArrayList<Integer>();
  9.                 int i = 0;
  10.                 while(i != 10)
  11.                 {
  12.                         int r = rd.nextInt(20);
  13.                         if(!al.contains(rd)){
  14.                                 al.add(r);
  15.                                 i++;
  16.                         }
  17.                 }
  18.                 return al;
  19.         }

  20. }
复制代码


作者: 蔡锐    时间: 2015-7-14 16:09
16行 应该是   if(!al.contains(r)
你这个生产的是0~19,如果是1~20的话15行应该是  int r = rd.nextInt(20)+1
作者: xiaoxinxin003    时间: 2015-7-14 16:22
蔡锐 发表于 2015-7-14 16:09
16行 应该是   if(!al.contains(r)
你这个生产的是0~19,如果是1~20的话15行应该是  int r = rd.nextInt(20 ...

恩恩   谢谢指正。
作者: masai158    时间: 2015-7-14 17:25
集合随机
http://bbs.itheima.com/thread-139461-1-1.html
作者: 木头人之死    时间: 2015-7-14 19:13
严重怀疑是来黑马币的!!!!!!!
作者: Love丶cd    时间: 2015-7-14 19:48
一楼正解
作者: xiaoxinxin003    时间: 2015-7-14 21:07
木头人之死 发表于 2015-7-14 19:13
严重怀疑是来黑马币的!!!!!!!

真是粗心了,我实在是找不出错了
作者: Miss.H    时间: 2015-7-14 21:09
既然是随机随机到一样的不是很正常
作者: xiaoxinxin003    时间: 2015-7-14 21:15
Miss.H 发表于 2015-7-14 21:09
既然是随机随机到一样的不是很正常

要求是随机不重复的
作者: 木头人之死    时间: 2015-7-15 11:34
xiaoxinxin003 发表于 2015-7-14 21:07
真是粗心了,我实在是找不出错了

if(!al.contains(rd))
这个错了!!!!!!是r不是rd




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2