Aquí hay una cosa extraña:
int losPeleadores = 0;
while (losPeleadores < peleas.length) {
Dado que peleas.length siempre será mayor que 1, el while siempre será true. Por tanto lo anterior equivale a:
while (true) {
Es decir, un bucle que se repite infinitamente (a no ser que sea detenido mediante una instrucción break interna). Un while true es algo que no se suele considerar un buen diseño de programación.
Ahora mismo tienes comentadas varias líneas:
String[] peleas = { BaseDatos.getPeleadores().get(0).getNombre(),
BaseDatos.getPeleadores().get(1).getNombre(),
/*/BaseDatos.getPeleadores().get(2).getNombre(),
Esto da lugar a que nunca se pueda salir del bucle, y por tanto el bucle se queda bloqueado. ¿Por qué? Porque la condición de salida es if (emparejados.size() == peleas.length - 1)
Para poder llegar a la condición de salida parece que se necesita un número impar de peleadores de forma que se creen parejas de dos y quede uno libre. Pero esto no parece lógico ¿qué ocurre si el número de peleadores es par?
Otra cosa mal programada es por ejemplo la repetición de código que tienes en el método main: eso se debe hacer a través de un bucle. Repites 8 veces las instrucciones asociadas al alta de un peleador, pero eso deberías hacerlo con un bucle.
Otra cosa que no es coherente es esta:
String[] peleas = { BaseDatos.getPeleadores().get(0).getNombre(),
BaseDatos.getPeleadores().get(1).getNombre(),
BaseDatos.getPeleadores().get(2).getNombre(),
BaseDatos.getPeleadores().get(3).getNombre(),
BaseDatos.getPeleadores().get(4).getNombre(),
BaseDatos.getPeleadores().get(5).getNombre(),
BaseDatos.getPeleadores().get(6).getNombre(),
BaseDatos.getPeleadores().get(7).getNombre(),
BaseDatos.getPeleadores().get( 8 ).getNombre(),
BaseDatos.getPeleadores().get(9).getNombre()
};
Aquí haces una introducción de datos manual basada en múltiples invocaciones... eso deberías hacerlo recorriendo la colección y añadiendo elementos al array, no con una introducción manual. Si no lo haces así no logras una automatización verdadera, es decir, un programa que trabaje con cualquier número de peleadores, sino solo un programa que trabaje con 10 peleadores o con un número prefijado.
Otra cosa poco coherente es que si nos equivocamos al introducir un código y en vez de un número introducimos una letra, el programa se interrumpa. Si llevamos por ejemplo introducidos los datos de 5 peleadores y nos equivocamos, perdemos todo el trabajo hecho.
En resumen, demasiadas cosas como para hacer una revisión de este código. Te recomiendo seguir este curso:
http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188Donde se revisan todos los conceptos de la programación Java. Para que este código tuviera un buen diseño habría que revisarlo al completo, quizás fuera preferible empezar desde cero e ir paso a paso. Ahora, si no tienes tiempo quizás se trate solo de intentar terminarlo... depende de lo que quieras hacer.
Salu2