Да, разрешает.
HashSet хранит ссылки на объекты типа Object, что позволяет ему содержать элементы различных типов данных. Однако, из-за стирания типов (type erasure) в дженериках, при создании HashSet без указания конкретного типа, компилятор будет воспринимать его как HashSet<Object>.
Пример:
java
Однако, такой подход не рекомендуется, так как он снижает типобезопасность и может привести к ошибкам времени выполнения (например, ClassCastException) при извлечении элементов из коллекции.
При использовании HashSet с дженериками, он будет хранить объекты только указанного типа:
java
В общем случае, для обеспечения типобезопасности всегда следует использовать дженерики при работе с коллекциями.