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»