作业帮 > 综合 > 作业

急!java 怎么任意生成一个不重复的10位数!(不能重复啊!各位高手帮帮忙!)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 09:33:44
急!java 怎么任意生成一个不重复的10位数!(不能重复啊!各位高手帮帮忙!)
别人要的是不重复的10位数,楼上的各位都没有实现这个功能.
首先定义一个HashMap,用来存放生成的随机数,然后用Random生成一个10位的随机数,再与HashMap里面的数据进行对比,没有则返回这个数,有的话就用递归即再调用这个方法来继续生成下一个10位的随机数,这样就可以了.
楼主懂了没
再问: 麻烦大侠能把程序写一下不,感激不尽!!!我是个新手,思路知道,但是写起来有点困难!
再答: public class Test1 { List list = new ArrayList(); // 存放数据 public static void main(String[] args) { System.out.println(new Test1().getData()); } private String getData() { Random r = new Random(); String str = ""; for (int i = 0; i < 10; i++) { // 循环10次 Integer x = r.nextInt(10); // 0-9的随机数 str += x.toString(); // 拼成10位数 因为int类型只能存放200000000+的数据,所以只能用字符串拼接 } if(list.contains(str)) { //存在则再生成一次数据 this.getData(); } return str; } } 好了
再问: 谢谢了哈,解释的很详细,真的很感谢!