首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

关于JAVA的小程序题解决办法

2012-06-06 
关于JAVA的小程序题要求输出一个1到60之间随机的无重复的数,求解答。。。[解决办法]Java有随机函数吧,我记得

关于JAVA的小程序题
要求输出一个1到60之间随机的无重复的数,求解答。。。

[解决办法]
Java有随机函数吧,我记得是有的,但是输出的范围就不记得了。
可以把输出的数存到一个数组里,然后每输出一次就比对,有就重新产生,没有就输出
[解决办法]

Java code
import java.util.HashSet;import java.util.Iterator;import java.util.Random;public class RandomGen {    // 利用HashSet的特征,只能存放不同的值    public static HashSet<Integer> set = new HashSet<Integer>();    public int count;// 需要生成随机数的个数    public RandomGen(int num) {        this.count = num;    }    public static RandomGen init(int num) {        return new RandomGen(num);    }    // 生成【begin,end】区间内num个随机数    public void genRadoms(int begin, int end, int num, HashSet<Integer> set) {        if (num > (end - begin + 1) || end < begin) {            return;        }        for (int i = 0; i < num; i++) {// 生成num个随机数            // 调用Math.random()方法            int temp = (int) (Math.random() * (end - begin)) + begin;            set.add(temp);// 将不同的数存入HashSet中        }        int setLen = set.size();        // 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小        if (setLen < count) {            genRadoms(begin, end, count - setLen, set);// 递归        }    }   public static void printSet(HashSet<Integer> set) {// 打印结果        int count = 1;        Iterator<Integer> i = set.iterator();        while (i.hasNext()) {            System.out.print("["+count + "]:" + i.next()+" ");            if(count%10==0){                System.out.println();            }            count++;        }    } 

热点排行