Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Mappa ordinata

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50

    Mappa ordinata

    Salve, avrei un problema.. vi posto la parte di codice:

    codice:
     for (int i = 0; i<model.getRowCount(); i++) {
                            mappa.put(model.getValueAt(i, 0), model.getValueAt(i, 1));
                }
    dove model è una tabella formata da 2 colonne ed n righe, e mappa è la varibiale in cui vorrei memorizzare i dati di questa tabella come coppia chiave(1°colonna) - valore(2° colonna).

    Però dichiarando la variabile mappa sia come Map, che come HashMap,che TreeMap l'output è sempre diverso dall'ordine in cui i dati sono stati inseriti nella tabella.

    Come posso fare per avere nella mappa i dati in ordine come sono in tabella??

    Grazie

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

    Re: Mappa ordinata

    Originariamente inviato da luca_87
    Come posso fare per avere nella mappa i dati in ordine come sono in tabella??
    java.util.LinkedHashMap. È una mappa praticamente come HashMap (quindi accesso per chiave "veloce") ma in più, internamente, è affiancata da una lista linkata, in modo che l'ordine di iterazione sia prevedibile. Nota che a seconda di come lo istanzi (vedi costruttori) puoi avere l'ordine per insertion-order oppure last-access-order.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Funziona, grazie mille


  4. #4
    ciao, io ho una hashmap nel mio progetto.. mi servirebbe che sia ordinata.. posso dichiarala direttamente linkedhashmap?? le funzioni di lettura(con iterator) e di scrittura(con put) sono uguali.. xkè non vorrei adesso cambiare tutti il codice visto ke uso la map in molti moduli..

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    ciao, io ho una hashmap nel mio progetto.. mi servirebbe che sia ordinata..
    Dipende da cosa intendi per "ordinata". Se "ordered" (ordine di iterazione prevedibile) quindi es. LinkedHashMap oppure "sorted" (mantenuta internamente ordinata in base al contenuto degli oggetti) es. TreeMap.

    Originariamente inviato da crystal86
    posso dichiarala direttamente linkedhashmap??
    Il tipo della variabile potresti anche dichiararlo come Map (la interfaccia). Che poi invece istanzi e assegni alla variabile un LinkedHashMap piuttosto che HashMap o altro .... è un dettaglio che dipende da come vuoi che si comporti la mappa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Originariamente inviato da andbin
    Dipende da cosa intendi per "ordinata". Se "ordered" (ordine di iterazione prevedibile) quindi es. LinkedHashMap oppure "sorted" (mantenuta internamente ordinata in base al contenuto degli oggetti) es. TreeMap.

    Il tipo della variabile potresti anche dichiararlo come Map (la interfaccia). Che poi invece istanzi e assegni alla variabile un LinkedHashMap piuttosto che HashMap o altro .... è un dettaglio che dipende da come vuoi che si comporti la mappa.
    Allora ti spiego cosa mi serve.. io ho una HashMap<String, Cliente> registrazione_clienti.. e vorrei che nell inserimento di un nuovo Cliente nella hashmap venga imposto l'ordinamento per cognome..(Cliente ha come campi: id, cognome, nome), e se due cognomi sono uguali allora vengono ordinati per nome.. tutto questo in modo tale ke la stampo della hashmap risulti ordinata.. adesso non so quale tipo di map mi conviene usare..

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    io ho una HashMap<String, Cliente> [....] venga imposto l'ordinamento per cognome..
    Nelle map presenti nel framework non si può imporre un ordinamento sui valori. Solo, al massimo, sulle chiavi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Originariamente inviato da andbin
    Nelle map presenti nel framework non si può imporre un ordinamento sui valori. Solo, al massimo, sulle chiavi.
    capito.. allora posso creare una funzione void StampaClienti (HashMap map) che prende una hashmap e la legge tramite un iterator, poi effettua dei controlli sugli oggetti e effettua dei confronti in base al cognome e inserisce i dati ordinati nn so in un array list.. in modo da ottenere un arraylist ordinato??

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    capito.. allora posso creare una funzione void StampaClienti (HashMap map) che prende una hashmap e la legge tramite un iterator, poi effettua dei controlli sugli oggetti e effettua dei confronti in base al cognome e inserisce i dati ordinati nn so in un array list.. in modo da ottenere un arraylist ordinato??
    Certamente che puoi farlo. Però dovresti prima prendere valore per valore dalla map (iterando sulle chiavi e usando get(chiave) e metterlo nell'ArrayList e poi alla fine ordinare questa lista (con sort() di Collections) basandoti su Comparable o Comparator (dipende da cosa intendi implementare).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Originariamente inviato da andbin
    Certamente che puoi farlo. Però dovresti prima prendere valore per valore dalla map (iterando sulle chiavi e usando get(chiave) e metterlo nell'ArrayList
    Fin qui ci siamo..
    e poi alla fine ordinare questa lista (con sort() di Collections) basandoti su Comparable o Comparator (dipende da cosa intendi implementare).

    come potri farlo.. hai qualke esempio simile nei tuoi??

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.