java:类集操作,多对多的关系
//一个课程有多个学生报名,
//一个学生可以报名多个课程
demo.java, Student.java, Course.java'
public class Course { private String name; private int course; private List<Student> allStudent; public Course() { this.allStudent = new ArrayList<Student>(); } public Course(String name, int course) { this(); this.name = name; this.course = course; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCourse() { return course; } public void setCourse(int course) { this.course = course; } public List<Student> getAllStudent() { return allStudent; } public String toString() { return "课程:"+this.name +",学分:"+this.course; } }
Student.java
public class Student { private String name; private int age; private List<Course> allCourse; public Student() { this.allCourse = new ArrayList<Course>(); } public Student(String name, int age) { this(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List<Course> getAllCourse() { return allCourse; } public String toString() { return "学生:"+this.name + ",年龄:"+this.age; } }
demo.java
//一个学生可以报名多个课程 Course c1 = new Course("java",5); Course c2 = new Course("linux",5); Student st1 = new Student("张三",22); Student st2 = new Student("李四",33); Student st3 = new Student("王五",32); Student st4 = new Student("田七",29); Student st5 = new Student("赵六",28); //第一课程 c1.getAllStudent().add(st1); c1.getAllStudent().add(st3); st1.getAllCourse().add(c1); st2.getAllCourse().add(c2); //第二课程 c2.getAllStudent().add(st1); c2.getAllStudent().add(st2); c2.getAllStudent().add(st3); c2.getAllStudent().add(st4); c2.getAllStudent().add(st5); st1.getAllCourse().add(c2); st2.getAllCourse().add(c2); st3.getAllCourse().add(c2); st4.getAllCourse().add(c2); st5.getAllCourse().add(c2); //输出 System.out.println(c1); Iterator<Student> stu = c1.getAllStudent().iterator(); while(stu.hasNext()) { System.out.println("__" + stu.next()); } System.out.println(st1); Iterator<Course> cour = st1.getAllCourse().iterator(); while(cour.hasNext()) { System.out.println( "__" + cour.next()); }
输出的结果为:
课程:java,学分:5 __学生:张三,年龄:22 __学生:王五,年龄:32 学生:张三,年龄:22 __课程:java,学分:5 __课程:linux,学分:5