bibigeek.com  Tu blog de Programación Geek: Java, php, J2EE... y mucho más

Archive for the ‘ Mejoras y Novedades Java 5.0 ’ Category

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!!!!!!!

Buenas a tod@s,
No es que haya dejado el blog…., pero he tenido mucho curro y no he podido dedicarle mucho tiempo al blog. Ahora espero ayudaros con nuevos POST. Este Post en concretamente van a ser varios…voy a explicar algunas de las mejoras y Novedades que tienen el Java 5, y así me servirá para repasar un poco.

Novedad y Mejora Java 5.0: Colecciones Genéricas

Definición de Colecciones:
Lo podemos definir como una estructura de Datos que almacena otros objetos, las cuales pueden ser recorridas de distintas formas según el tipo de Colección seleccionado.

Colecciones No-Genéricas VS Colecciones Genéricas

Las No – Genéricas:

  • Es el funcionamiento estándard de las Colecciones en Java, que es permitir el almacenamiento de cualquier Clase de Objeto. Por lo tanto se requirirá realizar un CASTING de cada una de las posiciones de la Colección
  • Esto suele ser una gran Fuente de Errores en Tiempo de Ejecución

Las Genéricas:

  • Sólo almacenan Objetos de una Clase
  • Tipo de la Colección se deberá indicar en la declaración de la Variable
  • Obtenemos como beneficio: más rendimiento y menores errores desde Compilación

Cómo Declarar Clases Genéricas


class nombreClase <alias> extends nombreSuperClase{
          /* Contenido Clase */
}

Este alias representa un Tipo que se definirá en Tiempo de Declaración.

Ejemplo:


class MyList<T> extends Vector{
.....
}

[More]