我的博客上面有这么篇文章,关于随机数组的。http://blog.matrix.org.cn/page/yyjzsl

解决方案 »

  1.   

    import java.util.Random;
    public class Maguee03
    {
     public static void main(String[] args) 
     {   
      int a[]=new int[32];  //定义的是32个整数的数组
      Random random=new Random();
      for(int i=0;i<a.length;i++)
      {   
        int z=random.nextInt(64); //整数的范围是0-63
        a[i]=Math.round(z); 
        if(i>=1)
        {
             int j=i;
            while(j>=0)
            {
                if( a[i]==a[j])
                {
                     int k=random.nextInt(64); 
                    a[i]=Math.round(k); 
                }
               j--;
            }     
         }
        System.out.print(a[i]+1+" ");//取得的是1-64中不重复的32个整数
       }
      }
    }
      

  2.   

    方法2:(这个要在JDK1.5.0中才可实现,^_^)import java.util.Random;
    import java.util.HashSet;public class Jtao
    {
    public static void main(String[] args) 
    {
        HashSet<Integer> set=new HashSet<Integer>(); //不排序
        Random random=new Random();
        while(set.size()<16)
    {
              set.add(new Integer(random.nextInt(64)));
        }
    System.out.println("数组大小:"+set.size());
    Object[] array=set.toArray();
    for(int i=0;i<array.length;i++)
    {
    System.out.print(array[i]+" ");

         }
       
    }
      

  3.   

    给你我常用的随机整数工具类/**
     * 随机处理器
     * 
     * @author marvy <br>
     *         根据给定的条件,产生随机数
     */
    public class Randomor {    private Randomor() {    }    /**
         * 得到随机的整数
         * 
         * @param upperLimit 得到整数的最大数(不包含)。默认的最小的整数为0;
         * @param count 得到的总的整数的数量
         */
        public static int[] randomInts(int upperLimit, int count) {        return randomInts(0, upperLimit, count);
        }    /**
         * 得到随机的整数数组
         * 
         * @param lowerLimit 得到整数的最小数(包含)
         * @param upperLimit 得到整数的最大数(不包含)
         * @param count 得到的总的整数的数量
         */
        public static int[] randomInts(int lowerLimit, int upperLimit, int count) {
            if(count < 0){
                count = 0;             
            }
            
            if(lowerLimit > upperLimit){
                int tmp = lowerLimit;
                lowerLimit = upperLimit;
                upperLimit = tmp;
            }        int[] noSames = new int[count];        Random random = new Random();        int getInt;
            for (int i = 0; i < count; i++) {
                while (true) {
                    getInt = randomInt(random, lowerLimit, upperLimit);
                    if (isExist(noSames, getInt, i) == false) {
                        break;
                    }
                }
                noSames[i] = getInt;
            }
            
            return noSames;
        }
        
        /**
         * 得到随机的整数
         *
         * @param lowerLimit 得到整数的最小数(包含)
         * @param upperLimit 得到整数的最大数(不包含)
         * @return int 随机的整数
         */
        public static int randomInt(int lowerLimit,
            int upperLimit) {
            return randomInt(null, lowerLimit, upperLimit);
        }
        
        /**
         * 得到随机的整数
         * 
         * @param random 随机类
         * @param lowerLimit 得到整数的最小数(包含)
         * @param upperLimit 得到整数的最大数(不包含)
         * @return int 随机的整数
         */
        public static int randomInt(Random random, int lowerLimit,
            int upperLimit) {
            if(lowerLimit == upperLimit){
                return upperLimit;            
            }
            
            if(lowerLimit > upperLimit){
                int tmp = lowerLimit;
                lowerLimit = upperLimit;
                upperLimit = tmp;
            }
            
            if(random == null){
                random = new Random();
            }        int tmpInt;
            while (true) {
                tmpInt = random.nextInt(upperLimit);
                if (tmpInt >= lowerLimit) {
                    return tmpInt;
                }
            }
        }
        
        /**
         * 判断给定的整数数组中是否存在某个整数
         * 
         * @param ints 整数数组
         * @param one 整数
         * @return boolean 是否存在
         */
        public static boolean isExist(int[] ints, int one) {
            return isExist(ints, one, ints.length);
        }
        
        /**
         * 判断给定的整数数组中指定位置之前是否存在某个整数
         * 
         * @param ints 整数数组
         * @param one 整数
         * @param length 指定位置(如:5代表判断数组前5个元素)
         * @return boolean 是否存在
         */
        public static boolean isExist(int[] ints, int one, int length) {
            if(length > ints.length){
                length = ints.length;
            }        for (int i = 0; i < length; i++) {
                if (ints[i] == one) {
                    return true;
                }
            }
            return false;
        }
    }
      

  4.   


    public int getRandom(){   Integer num = new Integer(((int)(System.currentTimeMillis() % 1000)));
       
       int i = 0;   i = num.intValue();   return i;}
      

  5.   


    public int getRandom(){
       /* 声明一个包装类,它的参数是得到当前的毫秒数%10000,然后转成int 数据类型 */
       Integer num = new Integer(((int)(System.currentTimeMillis() % 1000)));
       
       int i = 0;
       /* 取得int弄变量 */
       i = num.intValue();    return i;}
      

  6.   

    为什么不用apache的开源RandomUtils来产生随机数呢?