package test_4_01;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import base.Student;
public class Test4 {
public static List<Student1> initStudent() {
List<Student1> studentList = new ArrayList<Student1>();
for (int i = 0; i < 100; i++) {
int suijishu = (int) (Math.random() * 1000);
int suijishu1 = (int) (Math.random() * 1000);
Student1 stuInfo = new Student1();
stuInfo.setId("StuId" + i);
stuInfo.setNumber("no" + suijishu);
stuInfo.setName("学生" + suijishu1);
studentList.add(stuInfo);
System.out.println(
"学生信息_____id:" + stuInfo.getId() + " 编号:" + stuInfo.getNumber() + " 姓名:" + stuInfo.getName());
}
return studentList;
}
public static List<ClassInfo> initClass() {
List<ClassInfo> classList = new ArrayList<ClassInfo>();
for (int i = 0; i < 10; i++) {
int suijishu = (int) (Math.random() * 1000);
int suijishu1 = (int) (Math.random() * 1000);
ClassInfo classInfo = new ClassInfo();
classInfo.setId("ClassId" + i);
classInfo.setNumber("no" + suijishu);
classInfo.setName("班级" + suijishu1);
classInfo.setGradeid_nianji("GradeId" + (suijishu1 % 3));
classList.add(classInfo);
System.out.println("班级信息_____id:" + classInfo.getId() + " 所属年级id:" + classInfo.getGradeid_nianji() + " 编号:"
+ classInfo.getNumber() + " 名称:" + classInfo.getName());
}
return classList;
}
public static List<GradeInfo> initGrade() {
List<GradeInfo> gradeList = new ArrayList<GradeInfo>();
GradeInfo gradeInfo = new GradeInfo();
gradeInfo.setId("GradeId" + 0);
gradeInfo.setNumber("no" + 0);
gradeInfo.setName("一年级");
gradeList.add(gradeInfo);
System.out.println(
"年级信息_____id:" + gradeInfo.getId() + " 编号:" + gradeInfo.getNumber() + " 名称:" + gradeInfo.getName());
GradeInfo gradeInfo1 = new GradeInfo();
gradeInfo1.setId("GradeId" + 1);
gradeInfo1.setNumber("no" + 1);
gradeInfo1.setName("二年级");
gradeList.add(gradeInfo1);
System.out.println(
"年级信息_____id:" + gradeInfo1.getId() + " 编号:" + gradeInfo1.getNumber() + "名称:" + gradeInfo1.getName());
GradeInfo gradeInfo2 = new GradeInfo();
gradeInfo2.setId("GradeId" + 2);
gradeInfo2.setNumber("no" + 2);
gradeInfo2.setName("三年级");
gradeList.add(gradeInfo2);
System.out.println(
"年级信息_____id:" + gradeInfo2.getId() + " 编号:" + gradeInfo2.getNumber() + "名称:" + gradeInfo2.getName());
return gradeList;
}
public static List<StudentRelationClass> initStudentRelation() {
List<StudentRelationClass> relationList = new ArrayList<StudentRelationClass>();
Set<Integer> yiyouSet = new HashSet<Integer>();
for (int i = 0; i < 150; i++) {
int suijishu = (int) (Math.random() * 100);
if (!yiyouSet.contains(suijishu)) {
yiyouSet.add(suijishu);
} else {
continue;
}
int suijishu1 = (int) (Math.random() * 100);
StudentRelationClass relationInfo = new StudentRelationClass();
relationInfo.setStudentid("StuId" + suijishu);
relationInfo.setClassid("ClassId" + (suijishu1 % 10));
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, suijishu1 % 11);
c.set(Calendar.DAY_OF_MONTH, suijishu1 % 28);
relationInfo.setInDate(c.getTime());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(relationInfo.getInDate());
System.out.println("关联信息_____stuid:" + relationInfo.getStudentid() + "所属班级id:" + relationInfo.getClassid()
+ ",加入时间:" + dateString);
relationList.add(relationInfo);// ...
}
return relationList;
}
public static List<ResultInfo> initResultInfo() {
List<ResultInfo> resultList = new ArrayList<ResultInfo>();
Set<String> keySet=new HashSet<String>();
for (int i = 0; i < 500; i++) {
int suijishu = (int) (Math.random() * 100);
int suijishu1 = (int) (Math.random() * 100);
ResultInfo resultInfo = new ResultInfo();
String key ="StuId" + suijishu+"學科"+(suijishu1%7);
if(keySet.contains(key)) {
continue;
}else {
keySet.add(key);
}
resultInfo.setStudentid("StuId" + suijishu);
resultInfo.setScore(suijishu1);
resultInfo.setItem("學科"+(suijishu1%7));
System.out.println("成绩信息_____stuid:" + resultInfo.getStudentid() + " 成绩:" + resultInfo.getScore()+",學科:"+resultInfo.getItem());
resultList.add(resultInfo);
}
return resultList;
}
public static void main(String[] args) {
// 初始化学生
List<Student1> studentList = initStudent();
// 初始化年级
List<GradeInfo> gradeList = initGrade();
// 初始化班级
List<ClassInfo> classList = initClass();
// 初始化关联关系
List<StudentRelationClass> relationList = initStudentRelation();
// 初始化学生成绩list
List<ResultInfo> resultInfoList = initResultInfo();
// 初始化map,key为stuid,value为 a[0]编号,a[1]姓名,a[2]班级,a[3]年级,a[4]成绩,a[5]加入时间
HashMap<String, Object[]> map3 = new HashMap<String, Object[]>();
for (int i = 0; i < studentList.size(); i++) {
Student1 stuInfo = studentList.get(i);
if (!map3.containsKey(stuInfo.getId())) {
Object[] a = new Object[6];
a[0] = stuInfo.getNumber();
a[1] = stuInfo.getName();
for (int j = 0; j < relationList.size(); j++) {
if (stuInfo.getId().equals(relationList.get(j).getStudentid())) {
String q = relationList.get(j).getClassid();// 所屬班級ID:ClassId
for (int m = 0; m < classList.size(); m++) {
String p = classList.get(m).getId(); //
if (q.equals(p)) {
a[5] = relationList.get(j).getInDate();
a[2] = classList.get(m).getName();
String w = classList.get(m).getGradeid_nianji();
for (int q1 = 0; q1 < gradeList.size(); q1++) {
String m1 = gradeList.get(q1).getId();
if (w.equals(m1)) {
a[3] = gradeList.get(q1).getName();
// map3.put(stuInfo.getId(), a);
}
}
}
}
}
}
for (int h = 0; h < resultInfoList.size(); h++) {
if (stuInfo.getId().equals(resultInfoList.get(h).getStudentid())) {
a[4] = resultInfoList.get(h).getScore();
map3.put(stuInfo.getId(), a);
}
}
}
}
for (Object key : map3.keySet()) {
Object[] value = (Object[]) map3.get(key);
System.out.println("学生ID " + key + " : 编号 " + value[0] + " 姓名:" + value[1] + " 所属" + value[2] + " 所属年级"
+ value[3] + " 成绩 " + value[4] + " 加入时间 " + value[5]);
}
// 展示学生的所有信息
// System.out.println("学生id:StuId75,编号:no392,姓名:学生600,所属班级:班级432,年级:二年级,成绩:550,加入时间:2020-01-04");
// System.out.println("学生id:StuId45,编号:no274,姓名:学生865,所属班级:班级168,年级:三年级,成绩:673,加入时间:2020-01-04");
//
// System.out.println("学生id:StuId9,编号:no274,姓名:学生865,所属班级:班级17,年级:三年级,成绩:无,加入时间:2020-01-04");
}
}