Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [java]Dubbi??

  1. #1

    [java]Dubbi??

    Properties, HshMap e HashTable, tutti e 3 salvano dati chiave-valore, perche' diversi modi per fare una cosa uguale??
    So che Properties e' persistente, quindi consente la serializzazione, ma HashTable e HashMap??
    Chiarimenti please
    Nulla, ma e' sempre qualcosa.

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    In Java ci sono numerose classi che gestiscono le mappe.
    Ecco la gerarchia:

    AbstractMap - implementa parte di map
    HashMap - aggiunge la tabella di hash
    TreeMap - utilizza una struttura ad albero
    WeakHashMap - usa una tabella hash con chiavi deboli
    LinkedHashMap - consente iterazioni in ordine di inserimento
    IdentityHashMap - eguaglia i riferimenti

    Prendiamo quella indicata da te: HashMap che è una tabella che associa ad un riferimento una chiave.

    Poi hai parlato di Hashtable, prima essa era un'implementazione concreta di Dictionary. Da Java 2 in poi è stata riprogettata utilizzando Map come le classi di prima, però Hashtable è sincronizzata.

    Infine Properties, Properties è una sottodlasse di Hashtable e utilizza come chiave e come valore STRINGHE(le altre classi oggetti).

    Properties è molto usata anche da altri metodi e classi della core standard di Java, per fare un esempio System.getProperties ritorna un Properties con le variabili d'ambiente del sistema.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    OK tutte pero' ti consentono di salvare i dati con una chiave, ma qual'e' la migliore?? poi ho letto argomenti riguardo i Generics che migliorano le classi Collection.
    Cosa usare??

    Un altro consiglio, cosa devo studiare per le applicazioni lato server? ho studiato i socket con i canali Channel e il multicasting, mi sapresti indirizzare per reperire gli argomenti??


    Cmq saro' monotono ma sei una mente!!
    ciao
    Nulla, ma e' sempre qualcosa.

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da maurizio2
    OK tutte pero' ti consentono di salvare i dati con una chiave, ma qual'e' la migliore?? poi ho letto argomenti riguardo i Generics che migliorano le classi Collection.
    Cosa usare??

    Un altro consiglio, cosa devo studiare per le applicazioni lato server? ho studiato i socket con i canali Channel e il multicasting, mi sapresti indirizzare per reperire gli argomenti??


    Cmq saro' monotono ma sei una mente!!
    ciao
    grazie

    Per la migliore dipende dal tipo di dati devi gestire, forse la più comune è Hashtable, che è una sorta di HasMap ma appunto sincronizzata; quindi fra HasMap e Hastable userei la seconda, prima di Java2 c'era il problema che non avevano interfaccia in comune, quindi se usai una un metodo doveva richiedere come parametri, per il polimorfismo, classi di livello molto astratto per acettare entrambe; adesso che entrabe usano Map sono più "compatibili".

    Il discorso è diverso per Properties, un esempio tipico per Properties è salvare "configurazioni", tipo per la GUI salvi colore=codice_colore, aspetto=path_classe_look ed è tutto immediato(salvare e caricare), per quando riguarda HastQualcosa devi serializzare o fare altri giri per raggiungere uno scopo che Properties facilita, però Properties accetta solo String... quindi ogni classe ha un pro e una pecca.

    Adesso con i gerenics viene implementato il polimorfismo parametrico quindi ogni classe avrà un punto di forza in più per implementare questo paradigma della OOP.

    Per il lato server si usano le classi di java.net.* come ServerSocket(ascolta una porta) Socket(si connette ad una porta di un host), URL che rappresenta una url appunto e moltissime altre; poi puoi usare per mandare i dati gli stream con java.io o i canali(che non ho mai usato) di java.nio.

    Se poi intendi lato server "web-service" dovresti usare le servlet o le jsp che sono come php, vengono eseguite alla richiesta post o get della pagina; la SUn fornisce un kit di sviluppo per questo applicazioni: J2EE, ovvero l'enterprise edition.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Ok adesso il discorso e' chiaro, riguardo le classi che hai elencato per le connessioni le ho gia' studiate, cmq ti consiglio di studiare i canali e i selettori per realizzare un server monothread per accettare connessioni multiple dai client, se ti va ti posso fornire i sorgenti di un client e un server che utilizzano questa tecnologia, se vuoi ancora ho realizzato un piccolo esempio riguardo i canali utilizzati per i file, sui testi che ho studiato(sia C, Java o C++) ogni argomento riguardo ai file sia casuali che sequenziali utilizzano un programma di supporto per realizzare un file che abbia i record gia' impostati e di numero predefinito, con i canali invece hai un file vuoto dove puoi aggiungere nuovi record di dimensione fissa e la possibilita' di aggiungerne altri senza implementare algoritmi che riscrivono l'intero file.
    Ma a proposito hai dato un occhiata al simulatore e al compilatore scritto in C?
    Ti e' servito a capire nuovi aragmenti?
    Ciao
    Nulla, ma e' sempre qualcosa.

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da maurizio2
    Ok adesso il discorso e' chiaro, riguardo le classi che hai elencato per le connessioni le ho gia' studiate, cmq ti consiglio di studiare i canali e i selettori per realizzare un server monothread per accettare connessioni multiple dai client, se ti va ti posso fornire i sorgenti di un client e un server che utilizzano questa tecnologia, se vuoi ancora ho realizzato un piccolo esempio riguardo i canali utilizzati per i file, sui testi che ho studiato(sia C, Java o C++) ogni argomento riguardo ai file sia casuali che sequenziali utilizzano un programma di supporto per realizzare un file che abbia i record gia' impostati e di numero predefinito, con i canali invece hai un file vuoto dove puoi aggiungere nuovi record di dimensione fissa e la possibilita' di aggiungerne altri senza implementare algoritmi che riscrivono l'intero file.
    Ma a proposito hai dato un occhiata al simulatore e al compilatore scritto in C?
    Ti e' servito a capire nuovi aragmenti?
    Ciao
    si grazie, se hai qualche esempio coi canali manda pure


    Per il simulatore C l'interprete è chiaro, il compilatore è algoritmicamente più avanzato e cercherò di capirlo bene più avanti.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  7. #7
    Il problema e' il tuo server di posta, l'ultima volta per spedirti i sorgenti C e' stato un casino, non accetta mail di un certo peso.Ci porvo...
    Nulla, ma e' sempre qualcosa.

  8. #8
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da maurizio2
    Il problema e' il tuo server di posta, l'ultima volta per spedirti i sorgenti C e' stato un casino, non accetta mail di un certo peso.Ci porvo...
    è la gmail, la posta di google è in beta testing, avranno fatto qualche manutenzione.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.