我有許多關聯的實體信息與我。java中的雙向收集
我想向用戶顯示「學生」的列表,如果用戶選擇了一個學生,向他的老師展示。
相反,用戶可以選擇查看教師列表,並且他/她可以選擇教師以查看教師正在教授的所有學生。
我期待有一個java集合類(java內置或第三方)來表示這樣的數據,以便我可以根據學生查詢教師,反之亦然。
雙向地圖非常接近,但它強制執行1:1的關係。我有很多關係。
任何線索?
我有許多關聯的實體信息與我。java中的雙向收集
我想向用戶顯示「學生」的列表,如果用戶選擇了一個學生,向他的老師展示。
相反,用戶可以選擇查看教師列表,並且他/她可以選擇教師以查看教師正在教授的所有學生。
我期待有一個java集合類(java內置或第三方)來表示這樣的數據,以便我可以根據學生查詢教師,反之亦然。
雙向地圖非常接近,但它強制執行1:1的關係。我有很多關係。
任何線索?
我認爲你不能用地圖做到這一點。最簡單的方法是創建一個學生課程和一個教師課程。它們都可以有addTeacher(教師老師)/ addStudent(學生)這樣的方法。所以每個學生對象都知道它教師和每個教師對象都知道它是學生。
我不知道如果這是你在找什麼,但你可以看看Guava BiMap
這是否不夠?
Map<Student, Set<Teacher>> studentsToTeachers;
Map<Teacher, Set<Student>> teachersToStudents;
這不是一個單一的集合,但它可以解決你的問題,只要你的實現是正確的。
確實...這就夠了,這就是我目前所做的。但是..這意味着,現在,我有2個集合,並且......更糟糕......信息在重複中。studentsToTeachers將具有關於教師以及在TeachersToStudents中的信息。 –
BiMap與BidiMap相同...它提供1:1關聯。 –
我明白了,你有沒有考慮嘗試組合對象......比如'Teacher'包含'List','Student'包含'List '作爲對象模型。 –