Java多对多关系示例
生活随笔
收集整理的這篇文章主要介紹了
Java多对多关系示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用集合不僅可以表示一對一的關系,也可以表示多對多的關系。例如,一個學生可以選多門課程,一門課程可以有多個學生參加,那么這就是一個典型的多對多關系。
要完成上面要求,首先應該定義兩個類,分別是學生信息(Student)類、課程信息(Course)類。在學生類中存在一個集合,保存全部的課程。同樣,在課程類中也要存在一個集合,保存全部的學生。
1 . 定義學生類
在學生類中存在一個 allCourses 的 List 集合,這樣在程序運行時,一個學生類中可以保存多個 Course 對象。
2 . 定義課程類
public class Course {private String name;private int credit;// 定義集合保存多個學生private List<Student> allStudents;private Course() {// 實例化List集合this.allStudents = new ArrayList<Student>();}public Course(String name, int credit) {this();this.setName(name);this.setCredit(credit);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getCredit() {return credit;}public void setCredit(int credit) {this.credit = credit;}public List<Student> getAllStudents() {return allStudents;}public void setAllStudents(List<Student> allStudents) {this.allStudents = allStudents;}// 重寫toString()方法public String toString() {return "課程名稱" + this.name + ";課程學分" + this.credit;} }課程類與學生類一樣,都定義了一個 List 集合,用于保存多個學生信息。
3 . 測試程序
public class TestMore {public static void main(String[] args) {// 實例化課程對象Course c1 = new Course("英語", 3);Course c2 = new Course("計算機", 5);// 實例化學生對象Student s1 = new Student("張三", 20);Student s2 = new Student("李四", 21);Student s3 = new Student("王五", 22);Student s4 = new Student("趙六", 23);Student s5 = new Student("孫七", 24);Student s6 = new Student("錢八", 25);// 第一門課程有3個人參加,向課程中增加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個人參加,向課程中增加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);// 輸出一門課程的信息,觀察一門課程有多少個學生參加System.out.println(c1); // 輸出第一門課程Iterator<Student> iter1 = c1.getAllStudents().iterator();// 迭代輸出while (iter1.hasNext()) {Student s = iter1.next();System.out.println("\t" + s);}// 輸出一個學生參加的課程信息,觀察有多少門課程System.out.println(s6);Iterator<Course> iter2 = s6.getAllCourses().iterator();while (iter2.hasNext()) {// 取得所參加的課程Course c = iter2.next();// 輸出課程信息System.out.println("\t" + c);}} }輸出結果如下:
課程名稱英語;課程學分3學生姓名:張三:年齡20學生姓名:李四:年齡21學生姓名:錢八:年齡25 學生姓名:錢八:年齡25課程名稱英語;課程學分3課程名稱計算機;課程學分5程序采用的是雙向的處理關系,所以學生在選擇一個課程時,除了課程中要添加學生,在學生中也要添加課程信息。在輸出課程信息時,可以通過課程對象中的集合找到參加此課程的全部學生信息,也可以通過學生找到全部參加的課程信息。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Java多对多关系示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jsoup使用DOM方法来遍历一个文档
- 下一篇: java美元兑换,(Java实现) 美元