Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [java] uso di liste puntate

    salve, per esercitarmi voglio creare un programma che intrecci dati di due collezioni.
    So che in java non ci sono puntatori, ma la cosa mi sta disorientando.

    collezione 1: dati di iscritti ad un certo corso
    Collezione 2 : dati dei corsi a cui si devono iscrivere .

    Pensavo di usare Arraylist .

    ma come?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] uso di liste puntate

    Originariamente inviato da leadfoot
    So che in java non ci sono puntatori.
    In Java ci sono 2 categorie di tipi: "primitivi" e "reference". I reference (se non null) fanno riferimento ad un oggetto. Un reference è alla fin fine un "puntatore" ad un oggetto solo che la cosa è completamente "opaca" per il programmatore, nel senso che con un reference non ci puoi fare nulla di particolare (né aritmetica né altro di particolare) se non usarlo solo per accedere ad un campo X o un metodo X di un oggetto. Tutto qui.

    Originariamente inviato da leadfoot
    collezione 1: dati di iscritti ad un certo corso
    Collezione 2 : dati dei corsi a cui si devono iscrivere .

    Pensavo di usare Arraylist .
    Piuttosto che preoccuparti subito di queste collezioni, ti sei preoccupato prima di valutare come "modellare" le singole entità??
    Una espressione "dati di iscritti ad un certo corso" farebbe pensare a persone che si iscrivono ad un corso .... studenti in pratica, quindi in Java una classe es. Studente. E "dati dei corsi a cui si devono iscrivere" farebbe pensare ad un corso, quindi in Java una classe es. Corso.
    In Studente ci potrebbero essere proprietà come nome, cognome e altro, in Corso invece il titolo del corso e eventualmente altro. Hai già valutato e realizzato questo??

    E poi naturalmente le "relazioni". Un corso può avere più studenti, quindi ogni oggetto Corso potrebbe avere una "collezione" di oggetti Studente. E uno studente può frequentare più corsi, quindi ogni oggetto Studente potrebbe avere una "collezione" di oggetti Corso.

    Ora ti sembra un po' più chiaro?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    salve, ho gia impostato il grafico uml con le classi, il fatto è che non riesco a visualizzare nella mia mente come legare tra di loro le singole collezioni.
    In C usavo i record linkati con i puntatori, ma qui?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da leadfoot
    salve, ho gia impostato il grafico uml con le classi, il fatto è che non riesco a visualizzare nella mia mente come legare tra di loro le singole collezioni.
    In C usavo i record linkati con i puntatori, ma qui?
    Per esempio:

    La classe Studente potrebbe avere 3 campi di istanza:
    - nome (un String)
    - cognome (un String)
    - corsi (un Set<Corso> )

    La classe Corso potrebbe avere 2 campi di istanza:
    - titolo (un String)
    - studenti (un Set<Studente> )

    Per Set intendo java.util.Set, una collezione che rappresenta un "insieme" di oggetti che non ammette duplicati. Set è una interfaccia, il tipo realmente istanziato e assegnato al campo potrebbe essere un HashSet o magari un TreeSet (se si vuole l'ordine in base al contenuto degli oggetti).

    E tieni presente che relazionare le due classi in modo "bidirezionale" facendo in modo che sia sempre tutto congruente (evitando es. uno Studente che indica di seguire un Corso ma il Corso non lo elenca) è possibile ma va fatto in modo accurato.

    Se poi vuoi avere una lista di tutti gli studenti e una lista di tutti i corsi è un altro discorso ma non centra con le "relazioni" sopra indicate, basta es. un ArrayList.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ho iniziato i lavori , e sto creando le classi.
    Ho un errore su import che non capisco , perché ho sempre scritto cosi ma non ho mai avuto errori.
    ----------------------------------------------------------
    // menu di scuola militare

    package it.lorusso.scuolamilitare;

    import it.niba.utilita.*;

    class MenuMain{



    int menuInput(){
    int choice;

    System.out.println("------------------------------------------------------");
    System.out.println("-------------SCUOLA MILITARE--------------------------");
    System.out.println("- 1 : ");
    System.out.println("- 2 : ");
    System.out.println("- 3 : ");
    System.out.println("- 4 : ");
    System.out.println("- 5 : ");
    System.out.println("- 6 : ");
    System.out.print("DIGITA VOCE MENU scelta (ZERO per uscire): -> ");
    choice=Console.leggiIntero();
    if (choice != 0)
    {
    while((choice <1) || (choice >6)){
    System.out.println("- 1 : ");
    System.out.println("- 2 : ");
    System.out.println("- 3 : ");
    System.out.println("- 4 : ");
    System.out.println("- 5 : ");
    System.out.println("- 6 : ");
    System.out.print("ripeti la tua scelta (ZERO per uscire): -> ");
    choice=Console.leggiIntero();

    }
    }
    else {
    return choice;
    }

    return choice;
    }


    }









    C:\esejava\it\lorusso\scuolamilitare>javac MenuMain.java
    MenuMain.java:5: package it.niba.utilita does not exist
    import it.niba.utilita.*;
    ^
    MenuMain.java:23: cannot find symbol
    symbol : variable Console
    location: class it.lorusso.scuolamilitare.MenuMain
    choice=Console.leggiIntero();
    ^
    MenuMain.java:34: cannot find symbol
    symbol : variable Console
    location: class it.lorusso.scuolamilitare.MenuMain
    choice=Console.leggiIntero();
    ^
    3 errors

    C:\esejava\it\lorusso\scuolamilitare>

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da leadfoot
    C:\esejava\it\lorusso\scuolamilitare>javac MenuMain.java
    MenuMain.java:5: package it.niba.utilita does not exist
    import it.niba.utilita.*;
    ^
    Questo package specifico it.niba.utilita ovviamente io non posso sapere che cosa è (e contiene) e da chi/dove arriva. Queste classi le hai?? Ti hanno dato le classi "sfuse" (file .class singoli) o eventualmente, meglio, un jar con dentro le classi?

    Qualcosa devi avere .... altrimenti non so che dirti. E che tu abbia classi sfuse o in jar devi fare in modo che siano messe in "classpath" (significa passare l'opzione -classpath a javac o indicare il classpath con la variabile di ambiente CLASSPATH).

    Originariamente inviato da leadfoot
    MenuMain.java:23: cannot find symbol
    symbol : variable Console
    location: class it.lorusso.scuolamilitare.MenuMain
    choice=Console.leggiIntero();
    ^
    Immagino che questa Console sia del package it.niba.utilita. Quindi idem come sopra.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    il package funziona perfettamente, e l'ho anche usato in altra applicazione.
    Sono file class (Console.class), in un package.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da leadfoot
    il package funziona perfettamente, e l'ho anche usato in altra applicazione.
    Sono file class (Console.class), in un package.
    Se hai tutto quanto di quel package allora .... ti basta fare in modo che sia in "classpath" .... quale è il dubbio?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.