生成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);
??}
??
??}?
2016-06-25
1111111111111
2019-05-26
你這隨機正整數是會重復的,你把1000改成2,然后就可以驗證到是會重復的,我想是studentList.contains(k)這里有問題,即使隨機數重復了,這里結果也是float
2019-04-28
?你這代碼有問題把