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

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

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);
  }
  
  } 

正在回答

4 回答

1111111111111

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

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

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

 你这代码有问题把


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

举报

0/150
提交
取消

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

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