Lo que quiero conseguir es que cuando el usuario introduzca el orden de ejecución de unas tareas, el programa intente hacerla y si no puede, pase a la siguiente.
Por ejemplo, el usuario pone por que orden quiere usar A, B y C. Pongamos que elige B, A, y C, por ese orden. Esos datos los almaceno en un HashMap (puede ser otra cosa si lo creéis más conveniente) y se los paso de la gui al programa. Si B no está, pasa a A, y si tampoco está, pasa a C, si tampoco está, no hace nada y sigue la ejecución por otra parte.
Esto podría hacerlo sin comerme mucho el coco repitiendo muchas lineas de código:
Código:
Pero eso no es elegante ni eficiente. Quizás para un ejemplo con 3 opciones no está mal, pero si hay muchas más eso es inmanejable.if (HashMap.get("1").equals("A")) { doA(); } else if (HashMap.get("1").equals("B")) { doB(); } else if (HashMap.get("1").equals("C")) { doC(); } ....... } else if (HashMap.get("3").equals("A")) { doC(); } else if (HashMap.get("3").equals("B")) { doC(); } else if (HashMap.get("3").equals("C")) { doC();
Por eso pregunto si hay alguna forma mejor de hacer eso. Lo del titulo de recursividad y/o backtracking, es que me creo que la solución pasa por usar eso, pero no sabría como implementarlo.
¡Muchas gracias a todos por la ayuda que me podáis ofrecer!