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; } }


Rispondi quotando
