我想用当前时间的秒数作为随机数种来产生随机数,写出代码如下
Calendar c=Calendar.getInstance();
int second=c.get(Calenar.SECOND);
但是每次使用时这个second都是相同的值,这样就没办法产生不同的数字了,请高手指教一下怎么产获取的当前的瞬时秒数.
我也知道java.util.Random类可以用来产生随机数,但是想试试上面的方法.

解决方案 »

  1.   

    Calendar.SECOND是个静态常量,当然不会变的
    你用new java.util.Date().getTime(),也不需要用Calendar了
      

  2.   

    我是觉得Calendar c=Calendar.getInstance()时,就创建了一个Calendar的实例,时间就固定在那一刻了,所以产生不了随机变化的效果。
    不知道我的解释是否行得通~~
      

  3.   

    多种方法:
    1 Calendar.getInstance().getTime().getTime();();//当前毫秒
    2 System.currentTimeMillis();//当前毫秒
      

  4.   

    随机数
    Random()就是以当前时间的毫秒数为种子生成的
    new Random() 等效於 new Random(Calendar.getInstance().getTime().getTime())也就是说,如果你要使用当前时间作为随机种子,直接用new Random()就行了
    切记new Random()生成一次就好了,以后用next来生成就好了Java里的随机数是伪随机数,依赖于随机种子,如果你在某一时间,一直拿当前时间作为种子,那得到的随机数都是 一样的
      

  5.   

    同意楼上的!
    你先new 一个Random类然后用他的next方法!Random random = new Random();
    int second = random.next();
      

  6.   

    补充:Random还有好多的next相关方法!
    比如:nextInt(int n) etc.位置在:
      --java.util.Random
      

  7.   

    试试这个。
    Calendar c=Calendar.getInstance();
    int second=c.get(c.SECOND);
      

  8.   

    在每次调用c.get(Calenar.SECOND);之前,调用下列语句以得到当前时间
    c.setTimeInMillis(System.currentTimeMillis());
      

  9.   

    java.util.Calendar calendar = new java.util.GregorianCalendar();
    hour = calendar.get(Calendar.HOUR);
    minute = calendar.get(Calendar.MINUTE);
    second = calendar.get(Calendar.SECOND);