Hola,
Puedes ver algo de teoría y código aquí:
http://www.javahispano.org/contenido...es_de_objetos/
La idea es la siguiente. En Java tu puedes definir una Collection que sea ordenada (en tu caso lo más ajustado parece un TreeSet) y puedes definir tu el orden pasandole al TreeSet un objeto del tipo Comparator, que implemente un método
compareTo() en el cual tu comparas un objeto con otro, de la clase que sabes que vas a meter en el TreeSet, según las reglas que te convenga. La ventaja es que en este caso sólo has de comparar dos objetos.
Después simplemente vas añadiendo objetos al TreeSet y cuando has acabado, puedes sacarlos ordenados sin más. Están ordenados "solitos".
Si buscas "java comparator" en Google encontraras más ejemplos, el javadoc etc.
S!
PD: El problema de "empate" no es cuestión de código, es cuestión de definir bien cual es el resultado que quieres obtener en cualquiera de las combinaciones posibles. Luego implementarlo es lo fácil.