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