Friday, March 18, 2011

For(String texto

Hace unos dias conversaba con un amigo sobre la forma de utilizar los ciclos for en Java
ArrayList<String> arrayImports =new ArrayList<String>();

El utilizaba sentencias como estas

 for (int i = 0; i < arrayImports.size(); i++) {
                salida.println(arrayImports.get(i).toString());

            }

Le indique que podía mejorar su código
for(String t: arrayImports)
   salida.prinltn(t);

5 comments:

Anonymous said...

Yo aún lo mejoraría así

List<String> arrayImports = new ArrayList<String>();

mucho mejor programar contra interfaces, no contra las implementaciones.

Anonymous said...

Lo primero sería definir "mi código es mejor", significa que ¿es mas legible y mantenible? ó ¿Es porque se ejecuta mas rápidamente?. A la pregunta es porque es mas legible, entonces la primera opcion es la mejor,ya que se entiende mejor lo que hace. Y si es porque se ejecuta mas rapidamente, la primera opcion sigue siendo la mejor, JAVA es un lenguaje compilado, y el compilador se encarga de optimizar el código. En resumen nunca recomendaría útilizar: for(String t: arrayImports)
salida.prinltn(t);, No es legible, no es mantenible (no se puede ampliar la sentencia facilmente), y no se ejecuta mas rapido que la anterior. También se puede meter todo el código Java en una sola línea, o codificarlo directamente en código maquina (bytecode), pero para eso está el compilador.

Anonymous said...

Concuerdo con Anonymous. Interfaz i = new ImplementacionInterfaz(); No es lo mismo saber programar en Java que saber orientación a objetos.

Anonymous said...

Concuerdo con la opinión anterior. No es lo mismo saber Java que orientación a objetos. Una buena practica es Interfaz i = new ImplementacionInterfaz();

Anonymous said...

Del mismo modo, programar contra interfaces, depende mucho del entorno. En JME o Android hay recomendaciones de usar directamente la clase instanciada como optimización.

Y en el ejemplo de arrayimports, pongas lo que pongas, será un ArrayList.