This is an example enum for Java 8 that supports gaps in its indices is relatively fast for enums with a large amount of values:
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
public enum TestEnum {
VALUE1( 0 ),
VALUE2( 2 ),
VALUE3( 50 );
private final Integer id_;
private static Map< Integer, TestEnum > values_ =
Arrays.stream( TestEnum.values() ).collect( Collectors.toMap(e -> e.id_, e -> e) );;
private TestEnum( int i ) { id_ = i; }
public static TestEnum fromInteger( int i )
{
return values_.get( i );
}
}