日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java多对多关系示例

發布時間:2025/3/12 java 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java多对多关系示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用集合不僅可以表示一對一的關系,也可以表示多對多的關系。例如,一個學生可以選多門課程,一門課程可以有多個學生參加,那么這就是一個典型的多對多關系。

要完成上面要求,首先應該定義兩個類,分別是學生信息(Student)類、課程信息(Course)類。在學生類中存在一個集合,保存全部的課程。同樣,在課程類中也要存在一個集合,保存全部的學生。
1 . 定義學生類

public class Student {private String name;private int age;private List<Course> allCourses; // 定義集合保存全部課程private Student() {this.allCourses = new ArrayList<Course>();// 實例化List集合}// 通過構造方法設置內容public Student(String name, int age) {// 調用無參構造this();this.setName(name);this.setAge(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> getAllCourses() {return allCourses;}public void setAllCourses(List<Course> allCourses) {this.allCourses = allCourses;}// 重寫toString()方法public String toString() {return "學生姓名:" + this.name + ":年齡" + this.age;} }

在學生類中存在一個 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多对多关系示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。