您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
〖第13章:Java类集〗_范例讲解:多对多关系
发布时间:2021-01-04 16:46:26编辑:雪饮阅读()
学生与所学技能之间,一个学生可以学习多个技能,一个技能可以被多个学生学习,这样就形成了多对多的类集范例。
import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
class Course{
private String name ;
private int credit ;
private List<Student> allStudents ;
public Course(){
this.allStudents = new ArrayList<Student>() ;
}
public Course(String name,int credit){
this() ;
this.name = name ;
this.credit = credit ;
}
public List<Student> getAllStudents(){
return this.allStudents ;
}
public void setName(String name){
this.name = name ;
}
public void setCredit(int credit){
this.credit = credit ;
}
public String getName(){
return this.name ;
}
public int getCredit(){
return this.credit ;
}
public String toString(){
return "课程名称:"+this.name+",课程学分:"+this.credit;
}
};
class Student{
private String name ;
private int age ;
private List<Course> allCourses ;
public Student(){
this.allCourses = new ArrayList<Course>() ;
}
public Student(String name,int age){
this() ;
this.name = name ;
this.age = age ;
}
public List<Course> getAllCourses(){
return this.allCourses ;
}
public void setName(String name){
this.name = name ;
}
public void setAge(int age){
this.age = age ;
}
public String getName(){
return this.name ;
}
public int getAge(){
return this.age ;
}
public String toString(){
return "学生姓名:" + this.name + ",学生年龄:" + this.age ;
}
};
public class Hello{
public static void main(String args[]){
Course c1 = new Course("天舞烈风",3 ) ;
Course c2 = new Course("烈风连脚",5) ;
Student s1 = new Student("kasumi",20) ;
Student s2 = new Student("ayane",21) ;
Student s3 = new Student("momiji",22) ;
Student s4 = new Student("hayabusa",18) ;
Student s5 = new Student("lisa",24) ;
Student s6 = new Student("snowDrink",24) ;
//天舞烈风有3个学生学习
c1.getAllStudents().add(s1) ;
c1.getAllStudents().add(s2) ;
c1.getAllStudents().add(s6) ;
s1.getAllCourses().add(c1) ;
s2.getAllCourses().add(c1) ;
s6.getAllCourses().add(c1) ;
//烈风连脚有6个学生学习
c2.getAllStudents().add(s1) ;
c2.getAllStudents().add(s2) ;
c2.getAllStudents().add(s3) ;
c2.getAllStudents().add(s4) ;
c2.getAllStudents().add(s5) ;
c2.getAllStudents().add(s6) ;
s1.getAllCourses().add(c2) ;
s2.getAllCourses().add(c2) ;
s3.getAllCourses().add(c2) ;
s4.getAllCourses().add(c2) ;
s5.getAllCourses().add(c2) ;
s6.getAllCourses().add(c2) ;
//查看天舞烈风技能有哪些学生在学习
Iterator<Student> iter1 = c1.getAllStudents().iterator() ;
while(iter1.hasNext()){
Student s = iter1.next() ;
System.out.println("\t|- " + s) ;
}
//查看snowDrink学生学习了哪些技能
System.out.println(s6) ;
Iterator<Course> iter2 = s6.getAllCourses().iterator() ;
while(iter2.hasNext()){
Course c = iter2.next() ;
System.out.println("\t|- " + c) ;
}
}
};
关键字词:java,多对多