1. 程式人生 > >Java中多對多映射關系(轉)

Java中多對多映射關系(轉)

turn this mage log 演示 定義 ava copy setname

多對對的映射,可以用學生和課程進行演示。一個學生可以選擇多個課程,一個課程又對應了多個學生

定義學生類

技術分享圖片
class Stu{
    private String name;
    private String num;
    private Course[] course;
    public Stu() {}
    public Stu(String name,String num) {
        this.name = name;
        this.num = num;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public Course[] getCourse() {
        return course;
    }
    public void setCourse(Course[] course) {
        this.course = course;
    }
    public String getInfo() {
        return "姓名 :"+name+" 學號 :"+num;
    }
}
技術分享圖片

定義課程 類

技術分享圖片
class Course{
    private String name;
    private Stu[] stu;
    public Course() {}
    public Course(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Stu[] getStu() {
        return stu;
    }
    public void setStu(Stu[] stu) {
        this.stu = stu;
    }
    public String getInfo() {
        return "課程  :"+name;
    }
    
    
}
技術分享圖片

在main方法測試

首先定義Stu和Course對象,分別有三個

技術分享圖片
        Stu s1 = new Stu("張三","001");
        Stu s2 = new Stu("李四","002");
        Stu s3 = new Stu("王五","003");
        
        Course c1 = new Course("Java");
        Course c2 = new Course("php");
        Course c3 = new Course("Python");
技術分享圖片

設置彼此的關系,每個對象都有多個對象對應

技術分享圖片
        //設置學生和課程的關系
        s1.setCourse(new Course[]{c1,c2});
        s2.setCourse(new Course[]{c1,c3});
        s3.setCourse(new Course[]{c2,c3});
        
        //相應的課程設置與學生的關系
        c1.setStu(new Stu[]{s1,s2});
        c2.setStu(new Stu[]{s1,s3});
        c3.setStu(new Stu[]{s2,s3});
技術分享圖片

根據學生,獲取課程信息

        System.out.println(s1.getInfo()+" 同學選擇的課程有");
        for(int i=0; i<s1.getCourse().length; i++) {
            System.out.println(s1.getCourse()[i].getInfo());
        }

運行

技術分享圖片

根據課程,獲取學生信息

        System.out.println(c2.getInfo()+" 選擇這門課程的學生信息");
        for(int i=0; i<c2.getStu().length; i++) {
            System.out.println(c2.getStu()[i].getInfo());
        }

運行

技術分享圖片

Java中多對多映射關系(轉)