Принципиальная разница между List
и Set
заключается (как вы сказали) в том, что Set
не допускает дублирование, в то время как List
делает.Так что в вашем случае Set
более уместно, так как студент не должен быть в состоянии записаться на курс дважды.На самом деле, он должен быть в состоянии, но в том же семестре.Таким образом, у каждого учащегося может быть набор CourseEnrollment
объектов, а не Course
объектов.
Обратите внимание, что сохранение порядка не является невозможным для Set
- существуют реализации (например, LinkedHashSet
)которые сохраняют порядок элементов, и другие, такие как TreeSet
, которые сохраняют отсортированные элементы.