生成3个不重复的1000以内的随机正整数作为学生ID的程序,请多多指教!!!

来源:6-8 学生选课--- 实现学生序列排序

慕粉3170877

2016-06-24 09:49

public void sort4(){
  List<Student> studentList=new ArrayList<Student>();
  String s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY";
  Random random=new Random();
  Integer k;
  for(int i=0;i<3;i++){
    StringBuffer str=new StringBuffer();
   do{
    k=random.nextInt(1000);
    for(int j=0;j<4j++){
     int num=random.nextInt(s.length());
     str.append(s.charAt(num));  } 
    
   }while(studentList.contains(k)&&studentList.contains(str.toString()));
  
  
  studentList.add(new Student(k+"",str.toString()));
  }
  
  System.out.println("------------排序前-----------------");
  for(Student student:studentList){
   System.out.println("学生:"+student.id+","+student.name);
  }
  Collections.sort(studentList);
  System.out.println("------------排序后-----------------");
  for(Student student:studentList){
   System.out.println("学生:"+student.id+","+student.name);
  }
  Collections.sort(studentList,new StudentComparator());
  System.out.println("--------------按照姓名排序后----------------");
  for(Student student:studentList){
   System.out.println("学生:"+student.id+","+student.name);
  }
  
  } 

写回答 关注

3回答

  • Juggle_Wu
    2016-06-25 11:34:39
    已采纳

    1111111111111

  • zooeaa
    2019-05-26 08:50:45

    你这随机正整数是会重复的,你把1000改成2,然后就可以验证到是会重复的,我想是studentList.contains(k)这里有问题,即使随机数重复了,这里结果也是float

  • qq_慕用719741
    2019-04-28 10:53:43

     你这代码有问题把


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题