salve,avrei bisogno di una mano p capire come utilizzare i riferimenti delle Mappe/LinkedList;io ho svolto il compito che mi aveva assegnato il mio prof di linguaggi in un determinato modo(sotto la soluzione ed il testo) e faceva tutto ciò che lui mi chiedeva;il mio metodo consisteva nel creare due mappe una in una classe(Messaggistica) e l'altra nell'altra classe(MailingList) passando gli oggetti;il mio prof però vorrebbe che io utilizzassi i riferimenti e non creassi un'altra mappa o lista in mailinglist ed utilizzassi i riferimenti ma non so come si faccia;
grazie in anticipo per la cortese risposta
MainClass
classe Messaggisticacodice:package eserciziocompito21; import java.util.Scanner; public class Main { public static void main(String[] args) { Messaggistica m=new Messaggistica(); Scanner scanner=new Scanner(System.in); boolean esci=false; while(!esci){ System.out.println("\t-----Menù-------"); System.out.println("1)Aggiungi utente"); System.out.println("2)Crea MailingList"); System.out.println("3)Inserisci Utente nella MailingList"); System.out.println("4)Visualizza Utenti Iscritti"); System.out.println("5)Rimuovi Utente dalla mailingList"); System.out.println("6)Rimuovi mailingList"); System.out.println("8)Esci"); int scelta=scanner.nextInt(); switch(scelta){ case 1: m.aggiungiUtente(); break; case 2: m.creaMailingList(); break; case 3: m.inserisciUtenteMailingList(); break; case 4: m.VisualizzaUtentiIscritti(); break; case 5: m.RimuoviUtenteMailingList(); break; case 6: m.RimuoviMailingList(); break; case 8: esci=true; } } }}
classe MailingListcodice:package eserciziocompito21; import java.util.*; public class Messaggistica { private Scanner scanner=new Scanner(System.in); private Map<Integer,Utente>utenti=new HashMap<Integer,Utente>(); private List<MailingList>maili=new LinkedList<MailingList>(); public void aggiungiUtente(){ Utente u=null; try{ System.out.println("Inserisci codice utente: "); int cod=scanner.nextInt(); System.out.println("Inserisci email: "); String em=scanner.next(); System.out.println("Inserisci nome: "); String n=scanner.next(); System.out.print("Inserisci cognome: "); String c=scanner.next(); u=new Utente(cod,n,c,em); utenti.put(cod,u); }catch (Exception e){ System.out.println("Parametri inseriti,errati!!! "); } } public void creaMailingList(){ MailingList m=null; try{ System.out.println("Inserisci nome mailing: "); String nm=scanner.next(); Calendar data=creaData(); m=new MailingList(nm,data); maili.add(m); }catch(Exception e){ System.out.println("Scrittura errata!!! "); } } public void inserisciUtenteMailingList(){ Utente u=null; System.out.println("Inserisci il codice dell'utente da inserire: "); int cod=scanner.nextInt(); try{ u = RicercaUtente(cod); u.getInfoUtente(); } catch(Exception e){ System.out.println("Utente non trovato"); } if(u!=null){ Iterator i=maili.iterator(); while(i.hasNext()){ MailingList m=(MailingList)i.next(); System.out.println("Nome lista: "+m.getNome()); System.out.println("Vuoi inserire l'utente?"); int scelta=TipoScelta(); boolean esci=false; switch(scelta){ case 1: m.inserisciUtenteMailingList(cod, u); break; case 2: System.out.println("Nessun inserimento"); break; } } } } public void VisualizzaUtentiIscritti(){ Iterator i=maili.iterator(); while(i.hasNext()){ MailingList m=(MailingList)i.next(); System.out.println("Nome lista: "+m.getNome()); System.out.println("Vuoi visualizzare gli utenti?"); int scelta=TipoScelta(); boolean esci=false; switch(scelta){ case 1: m.visUtenti(); break; case 2: System.out.println("Nessuna visualizzazione"); break; } } } public void RimuoviUtenteMailingList(){ Utente u=null; System.out.println("Inserisci il codice dell'utente da rimuovere: "); int cod=scanner.nextInt(); try{ u = RicercaUtente(cod); u.getInfoUtente(); } catch(Exception e){ System.out.println("Utente non trovato"); } if(u!=null){ Iterator i=maili.iterator(); while(i.hasNext()){ MailingList m=(MailingList)i.next(); m.UtenteIscrittoLista(cod); } } } public void RimuoviMailingList(){ MailingList m=null; try{ m=RicercaMailingList(); }catch(Exception e){ System.out.println("MailingList non trovata"); } if(m!=null){ System.out.println("Lista che sto per cacellare: "+m.getNome()); System.out.println("Utenti della lista cancellata"); m.visUtenti(); maili.remove(m); } } public Utente RicercaUtente(Integer key) throws Exception { Utente u = utenti.get(key); if(u==null) throw(new Exception()); else return u; } public Utente VerificaCodiceUtente(Integer key) throws Exception { Utente u = utenti.get(key); if(u!=null){ throw(new Exception());} else return null; } public MailingList RicercaMailingList() throws Exception{ String a=null; System.out.println("Inserire il nome della lista: "); String scelta=scanner.next(); Iterator i=maili.iterator(); while(i.hasNext()){ MailingList m=(MailingList)i.next(); a=m.getNome(); if(scelta.equalsIgnoreCase(a)){ return m; } } throw(new Exception()); } public Calendar creaData(){ System.out.println("Inserisci anno: "); int anno=scanner.nextInt(); System.out.println("Inserisci mese: "); int mese=scanner.nextInt(); System.out.println("Inserisci giorno: "); int giorno=scanner.nextInt(); Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR,anno); cal.set(Calendar.MONTH,mese-1); cal.set(Calendar.DATE,giorno); return cal; } public int TipoScelta(){ int x=0; System.out.println("1)SI------2)NO"); int scelta=scanner.nextInt(); if(scelta==1){ x=scelta; }else if(scelta==2){ x=scelta; } return x; } }
classe Utentecodice:package eserciziocompito21; import java.util.*; public class MailingList { private Scanner scanner=new Scanner(System.in); private String nome; private Calendar data; private Map<Integer,Utente>iscritti; public MailingList(String nome,Calendar data){ this.nome=nome; this.data=data; iscritti=new HashMap<Integer,Utente>(); } public String getNome(){ return nome; } public void inserisciUtenteMailingList(Integer cod,Utente u){ iscritti.put(cod, u); } public void visUtenti(){ Iterator it=iscritti.keySet().iterator(); while(it.hasNext()) { // it.next() è la chiave Integer key = (Integer)it.next(); Utente u = iscritti.get(key); // Prendo l'elemento avente chiave it.next(); if(iscritti.isEmpty()){ System.out.println("Nessun utente nella mailinglist"); } else u.getInfoUtente(); } } public void UtenteIscrittoLista(int cod){ int a=cod; String n=null; Iterator it=iscritti.keySet().iterator(); while(it.hasNext()) { // it.next() è la chiave Integer key = (Integer)it.next(); Utente u = iscritti.get(key); // Prendo l'elemento avente chiave it.next(); if(a==u.getCod()){ System.out.println("Lista: "+nome); // iscritti.remove(key); System.out.println("Vuoi cancellare l'utente?"); int scelta=TipoScelta(); boolean esci=false; switch(scelta){ case 1: iscritti.remove(key); break; case 2: System.out.println("Nessuna cancellazione"); break; } } } } public int TipoScelta(){ int x=0; System.out.println("1)SI------2)NO"); int scelta=scanner.nextInt(); if(scelta==1){ x=scelta; }else if(scelta==2){ x=scelta; } return x; } }
codice:package eserciziocompito21; public class Utente { private int codice; private String nome,cognome,email; public Utente(int codice,String nome,String cognome,String email){ this.codice=codice; this.cognome=cognome; this.nome=nome; this.email=email; } public int getCod(){ return codice; } public void getInfoUtente(){ System.out.println("Nome: "+nome); System.out.println("Cognome: "+cognome); System.out.println("Email: "+email); // System.out.println("Codice: "+codice); } }

Rispondi quotando