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

 我来答
老油条精选
2011-10-09 · TA获得超过147个赞
知道答主
回答量:108
采纳率:0%
帮助的人:85.1万
展开全部
别人要的是不重复的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;
}

}

好了
大豆欢0
2011-10-09 · TA获得超过246个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:114万
展开全部
import java.util.*;

public class Demo{
public static void main(String[] args){
Random r=new Random();
for(int i=0;i<10;i++){
int y=r.nextInt();
System.out.println(y);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左自强
2011-10-09 · TA获得超过385个赞
知道小有建树答主
回答量:528
采纳率:0%
帮助的人:350万
展开全部
给你个c++的 然后你再按照java改下就行了 不好意思我实在是没有时间给你用java写了 c++的是我一次需要的时候写的 一直都放着的
void random20(int pick[],int n)//获取[1,n]之间的任意10个数{
int i=0,j=0;
bool flag = true;//不存在为true
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
{
int num = rand()%n+1;
for(j=i-1;j>=0;j--)
{
if(pick[j] == num)
{
flag = false;
break;
}
flag = true;
}
if(flag)
{
pick[i]=num;
}
else
{
i--;
}
}
}
追问
c++的看不懂啊,我该怎么写?还希望麻烦您一下,我是个新手。帮帮忙!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sqlserverjdbc
2011-10-09 · 超过12用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:24.2万
展开全部
Random b=new Random();
for(int j=0;j<10;j++){
int a=b.nextInt();
System.out.println(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式