为了账号安全,请及时绑定邮箱和手机立即绑定

如何生成3个不重复的1000以内的随机正整数作为学生Id

如何生成3个不重复的1000以内的随机正整数作为学生Id,大家有没有好的建议啊?

正在回答

4 回答

public void testSort4(){

List<Student> studentList=new ArrayList<Student>();

List<Integer> randomList=new ArrayList<Integer>();

Random random=new Random();

int k;

for(int i=0;i<3;i++){

do{

k=random.nextInt(1000);

}while(randomList.contains(k));

randomList.add(k);

}

studentList.add(new Student(randomList.get(0)+"","luci"));

studentList.add(new Student(randomList.get(1)+"","nibi"));

studentList.add(new Student(randomList.get(2)+"","good"));

System.out.println("*****排序前******");

for(Student stu:studentList){

System.out.println("学生"+stu.name );

}

System.out.println("*****排序后*********");

Collections.sort(studentList);

for(Student stu:studentList){

System.out.println("学生"+stu.name+" "+stu.id);

}

//用new StudentComparator()来接收return的值。

Collections.sort(studentList,new StudentComparator());

System.out.println("****根据姓名排序*******");

for(Student stu:studentList){

System.out.println("根据姓名:"+stu.id+" "+stu.name);

}

}


4 回复 有任何疑惑可以回复我~
#1

北海糖

是不是只能用+""的形式来使整数型变成字符型呢
2019-10-01 回复 有任何疑惑可以回复我~

hash表判断重复。。。

0 回复 有任何疑惑可以回复我~

3个不重复的1000以内正整数,保存在数组里然后输出出来:

public static void main(String[] args){
    Random r=new Random();
    int[] s=new int[3];
    Boolean flag=true;
   
    s[0]=r.nextInt(1000);
    int i=1;
    while(flag&&i<3)
    {
     flag=false;
     s[i]=r.nextInt(1000); //产生0到100的随机数
     if(s[i]==s[i-1])
      break;
     else
     {
      i++;
      flag=true;
     }
    }
    for(int j=0;j<3;j++)
        System.out.println(s[j]);
    }


0 回复 有任何疑惑可以回复我~
#1

天蓝色的彼岸_123 提问者

但是怎么把生成的随机不重复id赋值到一组学生对象中去呢?
2015-06-02 回复 有任何疑惑可以回复我~
#2

Nick_arron

你的if语句并没有什么用,和数组中上一个值相等就跳出循环了,可能连三个数都得不到。
2015-10-07 回复 有任何疑惑可以回复我~

循环生成3次,每生成一次和前一次的判断一次,重复的跳过。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如何生成3个不重复的1000以内的随机正整数作为学生Id

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信