I was playing with it a bit and it's even more complicated than the SO link suggests:

The tableswitch bytecode is probably O(1) only when the bytecode is interpreted. Once the compiler (C2) kicks in it's O(log n) - the same complexity as when lookupswitch is chosen by javac. 

I wasn't testing the C1 compiler neither running any benchmarks. Tests were performed on 64b Linux with Oracle JDK 7u51.