Novedades y Mejoras – Java 5.0 (II)
Junio 18, 2009 • Java, Mejoras y Novedades Java 5.0 • Comments
Ahí va mi segundo Post sobre las mejoras en el Java 5.
Novedad y Mejora Java 5: El For Mejorado (for-each)
Este nuevo bucle es para recorrer Colecciones con una Sintaxis más simple, aunque desde mi punto de vista es más costoso. Veamos su sintaxis:
for(tipo idParam : colección){
Sentencias;
}
- Necesitamos la colección por la que iterar
- El tipo no es más que la clase de los elementos que contiene esta colección
- Finalmente necesitaremos también un nombre de parámetro (idParam) que representa el elemento de la colección que se va extrayendo en cada iteración
Anidar con el For Mejorado
Sí, podemos anidar con el For Mejorado. Aquí os dejo la sintaxis:
for(tipo id1 : coleccion1){
for(tipo id2 : coleccion2){
Sentencias;
}
}
Ejemplo del For mejorado VS For Clásico
/* Declaramos dos colecciones de tipo Vector */
Vector v1 = new Vector(2);
Vector v2 = new Vector(1);
/* Rellenamos v1 con valores */
v1.add("Soy");
v1.add("Me llamo");
v2.add("Francisco Jose Bibiloni");
/* FOR CLASICO VERSION 1 - recorremos el v1 */
for(int i=0;i<v1.size();i++){
System.out.println((<Object>v1.get(i)).toString());
}
/* FOR CLASICO VERSION 2 - recorremos v1 */
for(Iterator<Object> i = v1.iterator(); i.hashNext();){
System.out.println(i.next().toString());
}
/* FOR MEJORADO - recorremos v1 */
for(Object a : v1){
System.out.println(a.toString());
}
/* FOR MEJORADO ANIDADO - recorremos v1 y v2 */
for(Object a : v1){
for(Object b : v2){
System.out.println(a.toString() +" " + b.toString());
}
}
Espero que os sirva para utilizarlo, ya que es bastante útil y rápido. Ahora bien:
- ¿Esto crea que a nivel interno tarde más tiempo resolver el bucle?
- ¿Puede llegar a consumir más recursos?
Para la primera pregunta puedo tener una respuesta, os prometo poner algún benchmark para evaluar si el tiempo de procesamiento varía, y ya de paso pondré algunas estadísticas.
Saludos a tod@s!!!!!!!