RandomList 的一个bug
来源:互联网 发布:淘宝一分钱试用在哪里 编辑:程序博客网 时间:2024/05/29 14:45
private Random random = new Random(47);
尽管作者很喜欢47 但是这里也不能填上47 因为如果填写47的话,就不是随机数了,尽管看起来是随机的,可是当你再次运行的时候,发现还是这一列数字, 我的每次运行都是
lazy quick brown dog this this quick jumped over brown brown 这几个数字 ,原因是 创建随机数的构造方法有无参和带有参数的,带有参数的例如47 是随机种子,详情可以参考 http://www.cnblogs.com/ningvsban/p/3590722.html 这篇blog 不带参数 以当前时间作为种子 每次运行当前时间肯定是不相同的
大概内容就是 种子相同,结果也就相同,种子不同,得出的结果也就不同
所以应该改成这样
public class RandomList<T> {
private ArrayList<T> storage = new ArrayList<T>();
// 47 是一个种子 对于种子相同的Random对象,生成的随机数序列是一样的
// private Random random = new Random(47); 尽管作者很喜欢47 但是这里也不能填上47 因为如果填写47的话,就不是随机数了
private Random random = new Random();
public void add(T item) {
storage.add(item);
}
public T select() {
return storage.get(random.nextInt(storage.size()));
}
public static void main(String[] args) {
RandomList<String> rs = new RandomList<String>();
for (String s : "this quick brown fox jumped over this lazy brown dog".split(" ")) {
rs.add(s);
}
for (int i = 0; i < 11; i++) {
System.out.print(rs.select() + " ");
}
}
}
- RandomList 的一个bug
- 拷贝RandomList
- 微软的一个bug?
- OracleParameter 的一个bug
- FireFox的一个bug
- 微软的一个BUG
- Tencent 的一个Bug
- 一个ComboBox的Bug
- WindowsXP的一个Bug
- QQ的一个BUG
- JCreator的一个BUG
- Word2007的一个bug
- hibernate3的一个bug
- ICTCLAS的一个bug
- CMonthCalCtrl的一个BUG
- Delphi2007的一个Bug?
- VS2005的一个BUG
- VC005的一个BUG
- 最新ShareSdk简洁版集成注意事项(IOS)
- 堆
- SQL Server 2008 数据库编程摘要四 :游标篇
- wpf 多线程操作实例
- SQL动态日期列统计
- RandomList 的一个bug
- Echarts通过svg画扇形例子,含矩形、三角形等
- 第一部分 1.变量与基本类型
- Tomcat源码分析(一)------ 架构
- 欧拉公式
- chown 与chmod的区别
- 《数学之美》--读书笔记
- bzoj-1535 Sza-Template
- 阿里“三活”数据中心实践经验:没人能做,我们就自己做