选中某个年级如高一年级(共300人),再选择考场范围(如301,302,303,..共十个考场(先每个考场30人,有的考场根据实际情况可能要增加几个人))  
如何将这300人分配到这十个考场,年级个人,考场范围均存在ArrayList中,可采用for循环遍历或者迭代获得其值,采用随机赋值(把考生随机分配到以上考场)怎样实现,或用其他方法 谢谢各位大虾了,请给与帮助

解决方案 »

  1.   

    import java.util.*;
    class Student {
      int id;
      public Student(int id){
        this.id=id;
      }
    }class Classroom {
      int id;
      ArrayList list=new ArrayList();
      public Classroom(int id){
        this.id=id;
      }
      public void addStudent(Student st){
        list.add(st);
      }
      public String toString(){
        StringBuffer sb=new StringBuffer();
        sb.append("Room id:"+id);
        sb.append("\r\n");
        sb.append("student:");
        for(int i=0;i<list.size();i++){
          Student st=(Student)list.get(i);
          sb.append(st.id+",");
        }
        return sb.toString();
      }
    }public class Test {
      public static void main(String args[]){
        ArrayList stList=new ArrayList();
        ArrayList crList=new ArrayList();
        for(int i=0;i<300;i++){
          stList.add(new Student(i));
        }
        Collections.shuffle(stList);
        for(int i=0;i<10;i++){
          crList.add(new Classroom(i));
        }
        for(int i=0;i<stList.size();i++){
          Student st=(Student)stList.get(i);
          Classroom cr=(Classroom)crList.get(i%crList.size());
          cr.addStudent(st);
        }
        for(int i=0;i<crList.size();i++){
          Classroom cr=(Classroom)crList.get(i);
          System.out.println(cr);
        }
      }
    }