무 작위 그룹

22735 단어 자바
인원수 나 그룹 수 에 따라 무 작위 로 그룹 을 나누다
student: 한 반 에 있 는 모든 학생 의 정 보 를 List 에 저장 하고 그룹 수 나 인원 을 계산 합 니 다. List. size () 에서 랜 덤 으로 int 를 선택 하고 index 에 따라 그룹 에 저장 합 니 다. List 에서 remove. for (그룹 group) {for (인원수 people) {사람 이 그룹 에 저장 합 니 다}}
@Override//输入组数
    public List randomByGroup(String claid, int group) {
        List<Student> student = studentDao.selectByClaId(claid);
        int people = 0;
        int remain = 0;
        if (group != 0) {
            people = student.size() / group;
            if (student.size() % group != 0) {
                remain = student.size() % group;
            }
        }else{
            log.error("小组不能为0");
        }
        List gro = new ArrayList();
        for (int i = 0; i < group; i++) {
//            数据库生组,给学生set组
            StudentGroup studentGroup = new StudentGroup();
            studentGroup.setName("第"+(i+1)+"组");
            studentGroup.setClaId(claid);
            StudentGroup s =save(studentGroup);
            String groId = s.getId();//生成小组的id
            List grostu = new ArrayList();
            Random r = new Random();
            grostu.add("第"+(i+1)+"组");
            for (int j = 0; j < people; j++) {
                int n = r.nextInt(student.size());//[0,size)中随机取int
                grostu.add(student.get(n).getName());
                Student st = new Student();
                st.setGroId(groId);
                st.setId(student.get(n).getId());
                studentDao.update(st);
                student.remove(n);
            }
            if(remain!=0){
                int n = r.nextInt(student.size());
                grostu.add(student.get(n).getName());
                student.remove(n);
                Student st = new Student();
                st.setGroId(groId);
                st.setId(student.get(n).getId());
                studentDao.update(st);
                remain -=1;
            }
            gro.add(grostu);
        }
        return gro;
    }


    @Override//输入人数
    public List randomByPeople(String claid, int people) {
        List<Student> student = studentDao.selectByClaId(claid);
        int group = 0;
        if (people != 0) {
            group = student.size() / people;
            if (student.size() % people != 0) {
                group +=1;
            }
        }else{
            log.error("人数不能为0");
        }
        List gro = new ArrayList();
        for (int i = 0; i < group; i++) {
//            数据库生组,给学生set组
            StudentGroup studentGroup = new StudentGroup();
            studentGroup.setName("第"+(i+1)+"组");
            studentGroup.setClaId(claid);
            StudentGroup s =save(studentGroup);
            String groId = s.getId();//生成小组的id
            List grostu = new ArrayList();
            Random r = new Random();
            grostu.add("第"+(i+1)+"组");
            for (int j = 0; j < people; j++) {
                if(student.size()==0){
                    break;
                }
                int n = r.nextInt(student.size());//[0,size)中随机取int
                grostu.add(student.get(n).getName());
                Student st = new Student();
                st.setGroId(groId);
                st.setId(student.get(n).getId());
                studentDao.update(st);
                student.remove(n);
            }
            gro.add(grostu);
        }
        return gro;
    }

좋은 웹페이지 즐겨찾기