Ir al contenido principal

Java Tip 12: Uso de for each

En está ocasión veremos como recorrer colecciones (arrays, listas, etc.) usando el clásico for y el "for each".

¿Qué es un array?
 Una estructura de datos con elementos del mismo tipo y cuyo tamaño es definido. En Java, el índice de un array inicia en cero.
final int TAM = 10;
//Definimos un arreglo con un tamaño de 10
int[] arreglo = new int[TAM];

int numeros[] = {11,22,33,44,55,66,77};
int tamanyo = numeros.length;

char[] caracteres = {'A','B','C'};
caracteres[0] = 'X';
caracteres[1] = 'Y';
caracteres[2] = 'Z';



try{
   caracteres[3] ='\u0043';
}catch(Exception ex){
  System.err.println("Tratas de acceder a un índice que no existe: "+ex.toString());
}


for(int n = 0 ; n < numeros.length; n++){
  System.out.printf("%d\n",numeros[n]);
}

¿Qué es una lista?
Una colección de elementos del mismo tipo cuyo tamaño es variable.
import java.util.ArrayList;

//...

ArrayList<String> listaNombres = new ArrayList<>();

listaNombres.add(0, new String("Thomas"));
listaNombres.add(1, "Horacio");
listaNombres.add(2, "Juliana");

Nota: La diferencia principal entre un arreglo y una lista es que lista puede crecer; un arreglo tiene un tamaño definido.


Es importante saber que con un bucle for tenemos mayor control que con un do-while y un while.

//Clásico for
for(int i=0; i < listaNombres.size();i++){
  System.out.println(listaNombres.get(i));
}

//For Each
for(String nombre : listaNombres){
  System.out.println(nombre);
}

Además con una lista podemos hacer algo como esto:
//Recorrer una lista con un 'for each'
listaNombres.forEach(System.out::println);

También podemos hacer ciclos infinitos:

int infinito = 0;

for(;;){
  System.out.println(infinito);
  infinito++;
}

for(true)
   System.out.println("Hola");

Con Java tenemos un mundo por aprender. En posteriores post veremos más sobre estructuras de datos y sentencias de control.

Comentarios

Entradas populares de este blog

Clojure para programadores Java (1)

Clojure es un lenguaje de programación similar a Lisp. Corre bajo la JVM (Java Virtual Machine) y emplea la programación funcional y orientada a objetos. El sitio oficial dice: Clojure es un lenguaje de programación robusto, práctico y rápido con un conjunto de características útiles que juntas forman una herramienta simple, coherente y poderosa. Creando el Hola,mundo en Clojure. holamundo.clj (println "Hola, mundo en Clojure!!" ) La extensión de un programa en este lenguaje es .clj Como se puede notar la base es colocar las sentencias entre parentesis. ( operador/funcion var1 var2 varN) Deberás descargar Clojure, tener instalado Maven y Java. A continuación se muestra una forma de obtener el JAR de Clojure para ejecutar nuestros programas. En la Línea final podemos acceder al shel o REPL del lenguaje. $ git clone https ://github.com/clojure/clojure.git $ cd clojure $ mvn -Plocal -Dmaven.test.skip=true package $ java -jar clojure.jar E

Explorando la Programación Orientada a Aspectos (AOP), con @domix

Clojure para programadores Java(2)

      Siguiendo la serie de post sobre Clojure veremos los tipos de datos en este lenguaje de programación. Como cualquier otro lenguaje dependiente de la JVM posee tipos de datos. Ejemplos de tipos de datos en Clojure  "Esto es una cadena de texto. "  String  'W'  Character  34500  Long  7.54  Double  nil  null  bar  símbolo en Clojure  :bar  llave en Clojure  (1 2 3)  lista en Clojure  [1 2 3]  vector en Clojure  {"Alef" 1 "Bet" 2 }  mapa en Clojure REPL de Clojure Abrimos una terminal y tecleamos clj. Esto abrirá un REPL: Clojure 1.10 .2 user=> 1 +2 +3 +4 1 2 3 4 user=> + 3 4 5 6 # object[clojure.core$_PLUS_ 0 x1d572e62 "clojure.core$_PLUS_@1d572e62" ] 3 4 5 6 user=> (+ 3 4 5 6 ) 18 user=> ( * 4 5 6 7 ) 840 user=> "Esto es una cadena en Clojure." "Esto es una cadena en Clojure." user=> ( def texto "