Структура данных для симметричных отношений «многие ко многим» (проблема друзей) - PullRequest
1 голос
/ 09 ноября 2010

Я вроде новичка. У меня есть вопрос относительно того, какую коллекцию Java (без Hibernate, баз данных и т. Д.) Лучше всего использовать для реализации симметричных отношений «многие ко многим». HashMap со значениями V = наборы ключей? Но затем удаление, операции добавления становятся очень медленными ... Любые предложения?

Спасибо.

1 Ответ

2 голосов
/ 09 ноября 2010

Один из способов сделать это - использовать две Карты. Один Map<Object1, Object2> и один Map<Object2, Object1>.

Вы можете добавить каждую пару связанных объектов на обе карты. Таким образом, вы можете очень быстро искать отношения в обоих направлениях. Вам также нужно будет удалить пары с обеих карт, когда связь удалена.

Удаление связей становится немного медленным, но добавление и поиск занимает постоянное время.

...