Costes

Franrc
01 de Abril del 2006
Hola amigos!!

Tengo una duda que imagino que vosotros sereis capaces de resolverme:

¿Que tiene más coste, una comparación con "IF" o el hecho de que salte una excepción??

Es que estoy haciendo un mismo bucle para dos ArrayList y por no ir comprobando si la "i" es mayor q "x.size()" cada vez.. pues lo dejo con un try catch... y cuando salte la excepcion.. q no haga nada.

Vosotros q decís'?

Gracias

Diego
01 de Abril del 2006
Como su propio nombre indica, la excepción ha de saltar en casos excepcionales, no siempre que se ejecuta un código. Las excepciones nunca han de chequearse si existe algún método para evitarlo, es un disparate esperar a que salte la excepción al recorrer una estructura de datos, la claridad y el código bien diseñado es mejor que esperar a que salte una excepción. Si te parece poco eficiente llamar al método x.size() y el tamaño de los ArrayList no va a ser modificado por el propio método u otro concurrente, puedes declarara una variable
int longitud=x.size();
o si comparas elemento a elemento sin importar el orden, puedes hacer el bucle descendente.
for(int i=x.size();i>=0;i--)
De hecho es algo que hago habitualmente si necesito saber, por ejemplo, la posición de un elemento; en este caso declaro la i fuera del bucle, y si se pasa vale -1, señal de elemento no encontrado.
Espero que te sirva.

deivit
01 de Abril del 2006
Creo que no lo enfocas bien, da igual el coste en ese caso, lo que haces no esta bien desde el punto de vista del estilo, vamos que estas haciendo una burrada jeje. El try y cath se usan para otras cosas, forzar el "segmentation fault"... uhhm no me convence. Un saludo