Autor Tema: recorrer lista recursivamente java (u otra colección) sin usar bucles  (Leído 13101 veces)

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Este código Java permite recorrer recursivamente una lista (o cualquier otra colección análoga) sin usar bucles tradicionales (for, while, etc.)

Normalmente será preferible un recorrido con un iterador, bucle for tradicional, etc. pero en ocasiones nos puede interesar operar recursivamente.

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Arrays;

public class recorridoRecursivo {
    //Recorrido recursivo ejemplo aprenderaprogramar.com

    public static void recorridoRecursivo (ArrayList<Integer> lista, int indiceActual) {
        if (indiceActual == lista.size()-1) { System.out.println ("Ultimo elemento..."+lista.get(indiceActual)); }
        else {
            System.out.println("Leyendo... " + lista.get(indiceActual));
            recorridoRecursivo(lista, indiceActual+1);
        }       
    }

    public static int numeroDeSietes (ArrayList<Integer> lista, int indiceActual, int contador) {
        if(lista.get(indiceActual) == 7) {contador= contador+1;}

        if (indiceActual == lista.size()-1) { return contador;     }

        else { return numeroDeSietes(lista, indiceActual+1, contador);    }         
    }

    public static void main (String[] args) {
        Integer [] listado = {3, 4, 1, 7, 3, 5, 7, 9, 4, 7}    ;
        ArrayList <Integer> listadoNumeros = new ArrayList<Integer> (Arrays.asList(listado));

        System.out.println ("listadoNumeros contiene " + listadoNumeros);
        System.out.println ("RECORRIDO SIN BUCLES (RECURSIVO)");
        recorridoRecursivo(listadoNumeros, 0);
        System.out.println ("RECORRIDO SIN BUCLES (RECURSIVO) CONTANDO ELEMENTOS QUE CUMPLEN UNA CONDICIÓN");
        System.out.println ("El número de sietes en la lista es " + numeroDeSietes (listadoNumeros, 0, 0));
    }
}
« Última modificación: 13 de Septiembre 2014, 19:22 por Alex Rodríguez »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".