Preciso de ajuda para fazer esse código

Galera , como faço para relacionar turmas e aluno? Uso uma matriz ou ArrayList em forma de matriz?
Crie um sistema que controle as turmas de uma instituição de ensino.
Cada turma tem um código, nome e os estudantes que fazem parte daquela turma.
Cada turma pode ter no máximo 10 (dez) estudantes. É preciso guardar as
seguintes informações sobre os estudantes: matrícula, nome e 04 (quatro) notas. O
sistema deve fornecer as seguintes opções:

  1. Cadastrar turma (O sistema deve permitir armazenar 10 turmas)

  2. Cadastrar estudante (É necessário buscar uma turma pelo código Antes de
    adicionar um estudante)

  3. Listar turmas (Exibir todas as turmas cadastradas)

  4. Listar estudantes por turma (Buscar turma pelo código)

  5. Consultar média de um estudante (Buscar pelo código da turma e número
    de matrícula do estudante)

  6. Alterar notas de um estudante (Buscar pelo código da turma e número de
    matrícula do estudante)

  7. Exibir média dos estudantes de uma turma (Buscar pelo código da turma e
    exibir a média dos estudantes da referida turma)

  8. Sair
    Meu Código:

    public static void main(String[] args) {
    ControleTurmas[][] ct = new ControleTurmas[10][10];
    Scanner tc = new Scanner(System.in);
    int r;

     do{
         System.out.println("1. Cadastrar turma (O sistema deve permitir armazenar 10 turmas)\n" +
                            "2. Cadastrar estudante (É necessário buscar uma turma pelo código antes de adicionar um estudante)\n" +
                            "3. Listar turmas (Exibir todas as turmas cadastradas)\n" +
                            "4. Listar estudantes por turma (Buscar turma pelo código)\n" +
                            "5. Consultar média de um estudante (Buscar pelo código da turma e número de matrícula do estudante)\n" +
                            "6. Alterar notas de um estudante (Buscar pelo código da turma e número de matrícula do estudante)\n" +
                            "7. Exibir média dos estudantes de uma turma (Buscar pelo código da turma e exibir a média dos estudantes da referida turma)\n" +
                            "0. Sair");
          r = tc.nextInt();
          
          if(r==1){
             for(int i=0;i<10;i++){
                 for(int j=0;j<10;i++){
                     ControleTurmas C;
                     System.out.print("Nome da turma: ");
                     String nomeTurma = tc.nextLine();
                     tc.nextLine();
                     System.out.print("Código da turma: ");
                     long codTurma=tc.nextLong(); 
                     ct[i][j]=C=new ControleTurmas(nomeTurma, codTurma);
                     System.out.print(" ");
                 }
                 System.out.println("");
             } 
          }
     }while(r!=0);
    

    }

}

A Turma pode ter uma lista de Aluno e cada Aluno pode ter uma referência para a Turma que ele pertence.

Eu pensei em fazer uma matriz , mas dps pensei que não daria certo.

Você pode usar um vetor ao invés de lista, mas acho que é trabalho desnecessário.