Enum.values() vs. EnumSet.allOf(). Welches ist vorzuziehen?Java

Java-Forum
Anonymous
 Enum.values() vs. EnumSet.allOf(). Welches ist vorzuziehen?

Post by Anonymous »

Ich habe unter der Haube nach EnumSet.allOf gesucht und es sieht sehr effizient aus, insbesondere für Aufzählungen mit weniger als 64 Werten.

Grundsätzlich teilen sich alle Mengen das einzige Array aller möglichen Aufzählungswerte und die einzige andere Information ist eine Bitmaske, die im Fall von allOf auf einen Schlag gesetzt wird.

Andererseits scheint Enum.values() eine zu sein ein bisschen schwarze Magie. Darüber hinaus gibt es ein Array zurück, keine Sammlung, daher muss es in vielen Fällen mit Arrays.asList( ) dekoriert werden, um an jedem Ort verwendet werden zu können, der eine Sammlung erwartet.

Sollte EnumSet.allOf Enum.values vorzuziehen sein?

Genauer gesagt, welche Form des for-Iterators sollte verwendet werden:

Code: Select all

for ( final MyEnum val: MyEnum.values( ) );
oder

Code: Select all

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post