Quote Originariamente inviata da andgio76 Visualizza il messaggio
ti ti chiedo un ultimo favore, se fosse possibile mi potresti fare un esempio pratico ( in Java o C#)
Abbastanza buttato giù al volo (ma funzionante e corretto):

codice:
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.HashSet;

public class ProvaCorsiStudenti {
    public static void main(String[] args) {
        Corso corsoJava = new Corso("Programmazione Java");
        Corso corsoCpp = new Corso("Programmazione C++");
        Studente marioRossi = new Studente("Mario Rossi");
        Studente robertoBianchi = new Studente("Roberto Bianchi");

        marioRossi.addCorso(corsoJava);
        robertoBianchi.addCorso(corsoJava);
        robertoBianchi.addCorso(corsoCpp);

        System.out.println(corsoJava);
        for (Studente studente : corsoJava.getListaStudenti()) {
            System.out.println("  " + studente + " che segue " + studente.getListaCorsi());
        }

        System.out.println(corsoCpp);
        for (Studente studente : corsoCpp.getListaStudenti()) {
            System.out.println("  " + studente + " che segue " + studente.getListaCorsi());
        }
    }
}


class Corso {
    private String nome;
    private Set<Studente> studenti;

    public Corso(String nome) {
        this.nome = nome;
        studenti = new HashSet<Studente>();
    }

    public void addStudente(Studente studente) {
        if (studenti.add(studente)) {
            studente.addCorso(this);
        }
    }

    public List<Studente> getListaStudenti() {
        List<Studente> listaStudenti = new ArrayList<Studente>(studenti);
        return listaStudenti;
    }

    public String toString() {
        return nome;
    }
}


class Studente {
    private String nome;
    private Set<Corso> corsi;

    public Studente(String nome) {
        this.nome = nome;
        corsi = new HashSet<Corso>();
    }

    public void addCorso(Corso corso) {
        if (corsi.add(corso)) {
            corso.addStudente(this);
        }
    }

    public List<Corso> getListaCorsi() {
        List<Corso> listaCorsi = new ArrayList<Corso>(corsi);
        return listaCorsi;
    }

    public String toString() {
        return nome;
    }
}