先Random rand=new Random();然后在取!for(int i=0;i<10;i++){
    System.out.println(rand.nextDouble());//这时候取得的就不一样了
}

解决方案 »

  1.   

    我试的时候不一样。
    只用反复new的时候才一样。
      

  2.   

    我是编写了一个函数
    private void equalRad() {
        Random rm = new Random();
        double temp = rm.nextDouble();
        return temp;
    }
    在外层循环不断的调用此方法,每次方法生成的随机数都是一样的!
      

  3.   

    楼上xitianjile的说法是对的,你改改程序吧
      

  4.   

    我见过这个问题,好像和参数有关,random()里面怎么设置参数来这就可以了,但是我具体都忘了~你找找吧~肯定能找到~
      

  5.   

    我试过了  确实如楼主所说  没次取值都是相同的,话说回来了  没有必要独立一个方法出来专门取随机数吧。或者用其他方法吧至于为什么会没次取值都相同,难道是BUG??  我个人理解应该是JAVA取值机制的问题,在第一次调用objcte.nextdouble的时候所指向的位置都是相同的然后再根据算法取随机值,而楼主每次都是以调用那个方法的方式来取  就会每次产生的都是指向的第一次的那个值  所以每次调用方法的时候取指都会一样!以上only个人观点  还请牛人赐教
      

  6.   

    不好意思  事实证明我在上面的说法是错的经过一网友提醒  是因为取值时间太短 而无法改变其值!试试:
    import java.util.*;public class Test{
    public void asd(){
    Random r = new Random();
    System.out.println(r.nextDouble());
    }
    public static void main(String[] args){
    for(int i = 0;i < 100 ;i++){
    Test t = new Test();
    t.asd();
    try{
    Thread.sleep(1000);
    }catch(Exception e){}
    }
             }
    }
      

  7.   

    对了,random不加参数就是一系统时间为参数的,如果时间太短就会出现一样的数字。