问答详情
源自:6-8 学生选课--- 实现学生序列排序

完善随机生成不重复学生ID并排序

public class CollectionSort { 
 public void sort3(){
		
 	   List<Student> studentList = new ArrayList<Student>();
 	   List<Integer> i = new ArrayList<Integer>();
 	   Random r = new Random();
 	   int n;
 	   
 	   for(int j=0;j<3;j++){
 		  
 		   do{
 			   n = r.nextInt(1000);
 		   }while(i.contains(n));
 		   i.add(n);
 		   
 	   }
 	   
 	   
 	   studentList.add(new Student(i.get(0).toString(),"小明"));
 	   studentList.add(new Student(i.get(1).toString(),"小红"));
 	   studentList.add(new Student(i.get(2).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);
 		}
 	}
 		public static void main(String[] args) {
		CollectionSort cs = new CollectionSort();

		cs.sort3();
	}

}
多多指教!


提问者:cloudddd_ 2016-01-29 10:31

个回答

  • EKKOY
    2017-02-15 09:35:18

    好想法,比我想的要简单

  • 不看6324不混吃等死
    2017-01-21 03:24:23

    学到了,你那种方法也不错

  • 不看6324不混吃等死
    2017-01-21 03:24:00

    public void testSort3(){
    		List<Student> studentList =new ArrayList<Student>();
    		Random random =new Random();
    		Integer a = 10001;
    
    		Integer[] readNums = new Integer[3];
    		for(int i=0;i<3;i++){
    
    			do{k=random.nextInt(1000);
    
    			}while( a==k);
    			a=k;
    			readNums[i]=k;
    		}
    		studentList.add(new Student(readNums[0]+"","小明"));
    		studentList.add(new Student(readNums[1]+"","小红"));
    		studentList.add(new Student(readNums[2]+"","小兰"));
    		System.out.println("--------排列前-----------");
    		for (Student student : studentList) {
    			System.out.println("学生:"+student.name);
    		}
    		Collections.sort(studentList);
    		
    	}


  • 不看6324不混吃等死
    2017-01-21 03:23:20

    public void testSort3(){

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

    Random random =new Random();

    Integer a = 10001;


    Integer[] readNums = new Integer[3];

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


    do{k=random.nextInt(1000);


    }while( a==k);

    a=k;


    readNums[i]=k;

    }

    studentList.add(new Student(readNums[0]+"","小明"));

    studentList.add(new Student(readNums[1]+"","小红"));

    studentList.add(new Student(readNums[2]+"","小兰"));

    System.out.println("--------排列前-----------");

    for (Student student : studentList) {

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

    }

    Collections.sort(studentList);

    }



  • gank
    2016-06-19 09:59:10

    不知有没有更简单的方法来实现


  • 第三个笨蛋
    2016-01-29 10:41:48

    学习了。感觉对于对象引用名称的定义要更详细点。一个i,一个n感觉不太好。