Enum.values() против EnumSet.allOf(). Какой из них предпочтительнее?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Enum.values() против EnumSet.allOf(). Какой из них предпочтительнее?

Сообщение Anonymous »

Я заглянул под капот EnumSet.allOf(), и он выглядит очень эффективным, особенно для перечислений с менее чем 64 значениями.
По сути, все наборы используют один массив всех возможных значений перечисления, и единственной дополнительной информацией является битовая маска, которая в случае allOf() устанавливается одним махом.
С другой стороны, Enum.values() кажется немного черной магии. Более того, он возвращает массив, а не коллекцию, поэтому во многих случаях он должен быть украшен Arrays.asList(), чтобы его можно было использовать в любом месте, где ожидается коллекция.
Итак, должен ли EnumSet.allOf() быть более предпочтительным, чем Enum.values()?
Более конкретно, какую форму итератора for следует использовать:
for ( final MyEnum val: MyEnum.values( ) );

или
for ( final MyEnum val: EnumSet.allOf( MyEnum.class ) );


Подробнее здесь: https://stackoverflow.com/questions/246 ... preferable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»