Как перевернуть вложенные списки и сохранить их в переменной? - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь создать программу, которая генерирует расписание футбольной лиги. Таким образом, это означает, что вторая половина графика такая же, как и первая половина, но отличаются только домашние игровые команды.

Например:

Round 1:
Team A - Team B
Team C - Team D

А потом, когда все играли друг против друга, противоположные матчи:

Team B - Team A
Team D - Team C

Я использую List<List<List<Team>>>. Вы можете прочитать это как: Список с раундами с матчами с двумя командами. Итак:

List<Team> - это список из двух команд, который является совпадением: Пример [Team A, Team B].

List<List<Team>> - это список с совпадениями (итак, один ронд). Пример: [[Team A, Team B], [Team C, Team D]]

List<List<List<Team>>> - список со всеми раундами. Вы знаете, как должен выглядеть пример.

У меня 12 команд, то есть 22 раунда. У меня есть первые 11 раундов в списке под названием first11Rounds. Я хочу сохранить это в новом списке того же типа: first:

List<List<List<Team>>> first = first11Rounds;

Для второй половины графика мне нужны те же раунды и матчи, но затем меняли дома и на выезде. Для этого я использую:

List<List<List<Team>>> first = first11Rounds;

for(List<List<Team>> round : first11Rounds){
    for(List<Team> match : round){
        Collections.reverse(match);
    }
}

List<List<List<Team>>> second = first11Rounds;

Итак, first - исходная переменная first11Rounds, а second - скорректированная переменная first11Rounds. Однако ... Когда я печатаю first и second, они абсолютно одинаковы. Дома и в гостях не поменялись. Я действительно не понимаю, почему. У кого-нибудь есть идея или лучшее решение?

...