You can logicly remove a lot of 'else' statements from that code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public static final int lookup(int val) { if (val < 65536) { if (val < 256) { if(val<0) return -1; return lookup[val]; } return lookup[val >> 8] << 8; }
if (val < 16777216) return lookup[val >> 16] << 16; return lookup[val >> 24] << 24; } |
Very tempting to inline one if/else statement:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public static final int lookup(int val) { if (val < 65536) { if (val < 256) return (val<0) -1 ? lookup[val]; return lookup[val >> 8] << 8; }
if (val < 16777216) return lookup[val >> 16] << 16; return lookup[val >> 24] << 24; } |
But probably just as fast
