Ich habe ein bevorstehendes Fifa-Turnier und ich habe ein Programm geschrieben, das die möglichen Matchups ausdruckt. Das Problem ist, dass es nicht logisch sortiert ist, was bedeutet, dass einige Spieler 5-6 aufeinanderfolgende Spiele spielen müssten, während andere 6 Spiele warten müssten. Ich möchte das folgende Ergebnis erhalten:Logisch sortierte Turnierspiele
player 1 - player 2
player 3 - player 4
player 5 - player 6
player 1 - player 3
player 2 - player 4
und so weiter. Dies ist, was ich im Moment haben:
public class Fifa {
public static void main(String[] args) {
String[] players= {"Jens", "Dane", "Keppens", "Roel", "John", "Onslo", "JonasDB", "Bellon", "Sander"};
String[] players2 = {"Jens", "Dane", "Keppens", "Roel", "John", "Onslo", "JonasDB", "Bellon", "Sander"};
Multimap<String, String> fixtures = LinkedHashMultimap.create();
for(int i = 0; i < players.length; i++){
for (int j = 0; j < players.length; j++){
if(!players[i].equals(players2[j])) {
if(!fixtures.containsKey(players2[j]))
fixtures.put(players[i], players2[j]);
}
}
}
for(Map.Entry map : fixtures.entries()){
String key = map.getKey().toString();
Object value = map.getValue();
System.out.println(key + " - " + value);
}
Aber hier ist das, was diese ausdruckt:
Jens - Dane
Jens - Keppens
Jens - Roel
Jens - John
Jens - Onslo
Jens - JonasDB
Jens - Bellon
Jens - Sander
Dane - Keppens
Dane - Roel
Dane - John
Dane - Onslo
Dane - JonasDB
Dane - Bellon
Dane - Sander
Keppens - Roel
Keppens - John
Keppens - Onslo
Keppens - JonasDB
Keppens - Bellon
Keppens - Sander
Roel - John
Roel - Onslo
Roel - JonasDB
Roel - Bellon
Roel - Sander
John - Onslo
John - JonasDB
John - Bellon
John - Sander
Onslo - JonasDB
Onslo - Bellon
Onslo - Sander
JonasDB - Bellon
JonasDB - Sander
Bellon - Sander
Ich benutzte ein Multimap, weil ich mehrere Schlüssel mit dem gleichen Wert benötigt.
In Ihrem Beispiel, wenn tut 2 und 3 gegeneinander spielen? Tun sie? Wäre auch etwas wie 1-2, 2-3, 3-4, 4-5, 5-6, 1-3, 2-4 usw. in Ordnung? Weil das wirklich einfach gemacht werden kann, indem man die Entfernung statt des Indexes überbrückt. – Dukeling
Sie würden sich schließlich ja gegenseitig spielen. Das "Problem" mit dieser Sortierlogik ist, dass es immer einen Spieler geben würde, der in aufeinanderfolgenden Spielen spielt, aber es ist besser als meine Implementierung. Wie würdest du das umsetzen? – Audiosleef