Двунаправленная коллекция в Java - PullRequest
1 голос
/ 15 октября 2011

У меня есть информация о многих связанных со мной объектах.

Я хотел бы показать пользователю список «учеников», и, если пользователь выберет ученика, показать его учителей.

С другой стороны, пользователь может выбрать просмотр списка учителей, и он / она может выбрать учителя, чтобы увидеть всех учеников, которых преподает учитель.

Я хочу получить класс коллекции java (встроенный илиСторонние) для представления таких данных, чтобы я мог запрашивать учителей на основе учащегося или наоборот.

Карта двунаправленного текста достаточно близка, но навязывает соотношение 1: 1.У меня много-много отношений.

Есть какие-нибудь подсказки?

Ответы [ 3 ]

2 голосов
/ 15 октября 2011

Я не уверен, что это то, что вы ищете, но вы можете взглянуть на Guava BiMap

2 голосов
/ 15 октября 2011

я думаю, что вы не могли бы сделать это с картой.самый простой способ - создать класс ученика и класс учителя.оба из них могут иметь такой метод, как addTeacher (учитель-учитель) / addStudent (студент-ученик).Таким образом, каждый объект Ученика знает, что это Учителя, а каждый объект Учителя знает, что это Ученик.

1 голос
/ 15 октября 2011

Разве этого недостаточно?

Map<Student, Set<Teacher>> studentsToTeachers;
Map<Teacher, Set<Student>> teachersToStudents;

Это не одна коллекция, но она решит вашу проблему, если ваша реализация была правильной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...