ejemplo - Taquigrafía iterada de enteros de Java
iterator vs foreach java (5)
No es tan obvio, pero es mucho más rápido , ya que la división generalmente se ejecuta más lentamente que cualquier operación a nivel de bits.
corner = ++corner & 3;
EDITAR: Y, sorprendentemente, descubrí una manera más impresionante de hacer ciclismo: usar turnos, ¡y se ejecuta aún más rápido!
corner = ++corner << 30 >>> 30;
Y este truco solo funciona para cualquier potencia de 2.
Este punto de referencia muestra todos los resultados (aunque es javascript, no java)
Al codificar me encuentro haciendo lo siguiente muy a menudo:
corner++;
if(corner == 4) corner = 0;
¿Hay de todos modos hacer esto en una línea?
En este ejemplo, la esquina debe ser 0, 1, 2, 3, 0, 1, 2, 3, 0 ....
Puedes hacerlo:
corner = ++corner == 4 ? 0 : corner;
Esto le daría la posibilidad de asignar algo más a la variable de corner
en caso de que su prueba de corner == 4
no haya pasado.
Utilizar el resto. Son dos líneas pero limpias.
corner++;
corner %= 4;
Yo suelo:
if (++corner == 4) corner = 0;