Ordinamento in una Mappa

di il
5 risposte

Ordinamento in una Mappa

Siccome questo forum mi ha aiutato parecchio la volta scorsa sono di nuovo qui
Ho inserito una collezione di oggetti in una Mappa(avevo necessariamente bisogno della mappa), oggetti che tra i loro attributi hanno una String nome.
Il problema è sorto quando ad un certo punto l'esercizio mi chiedeva di stampare l'elenco di questi oggetti ordinati per nome
Come costruisco tale metodo e soprattutto come ordino alfabeticamente i miei oggetti che nel gestore ho raggruppato in una Map?
Devo iniziate facendo una Classe a parte che compara per nome?
Chiedo Aiuto

5 Risposte

  • Re: Ordinamento in una Mappa

    Arjen10 ha scritto:


    Ho inserito una collezione di oggetti in una Mappa(avevo necessariamente bisogno della mappa), oggetti che tra i loro attributi hanno una String nome.
    Il problema è sorto quando ad un certo punto l'esercizio mi chiedeva di stampare l'elenco di questi oggetti ordinati per nome
    Certe map come TreeMap garantiscono un ordinamento sulle chiavi, altre come HashMap non garantiscono alcun ordinamento prevedibile, nemmeno per le chiavi.

    Quindi inizia a precisare che tipo di mappa hai, cosa hai come chiavi e come valori e su cosa vuoi ordinare.
  • Re: Ordinamento in una Mappa

    Caro mio, ed e' qui che ti voglio

    Intanto usa i termini Java e non versioni pseudo-italianizzate, per ovvi motivi di comprensione.

    Secondo: Map e' una classe o un'interfaccia?

    Te lo dico io, e' un'interfaccia!

    Sai che non si puo' istanziare un'interfaccia, ma solo una classe.

    Quindi tu hai istanziato una classe che implementa l'interfaccia Map.

    Quante diverse implementazioni (classi) dell'interfaccia Map ci sono in Java?

    Te le conterai!

    Ora, in quanti modi si puo' implementare una mappa (nota il minuscolo )?

    Almeno in due: mediante un albero e mediante una tabella hash.

    E qui' la domandona: che proprieta' ha l'albero e la tabella hash?

    Rispondi a questa domandina ed avrai scoperto l'arcano !
  • Re: Ordinamento in una Mappa

    Ho un HashMap di clienti che ha come key una String codice(collega un cliente alla sua tessera)
    Devo stampare l'elenco dei clienti in ordine alfabetico( i clienti hanno una string nome e una string cognome)
    Anche io sapevo che per l'HashMap non dovrebbe essere possibile l'ordinamento, per questo non so come fare
  • Re: Ordinamento in una Mappa

    Arjen10 ha scritto:


    ho un HashMap di clienti che ha come key una String codice(collega un cliente alla sua tessera)
    Devo stampare l'elenco dei clienti in ordine alfabetico( i clienti hanno una string nome e una string cognome)
    Anche io sapevo che per l'HashMap non dovrebbe essere possibile l'ordinamento, per questo non so come fare
    Prendi la collezione dei values dalla map, che ti viene fornita come Collection e poi passa i valori in un ArrayList (non fare un cast della Collection a List/ArrayList, perché non è una "lista").

    Quindi ordina il ArrayList tramite Collections.sort. Se la tua classe es. Cliente è Comparable (presumibilmente per cognome/nome, come è sensato che sia), ok.
    Altrimenti puoi comunque usare un Comparator per definire il criterio.

    Non ci sono altri modi "veloci". I valori nelle map non sono mai ordinati.
  • Re: Ordinamento in una Mappa

    Grande grazie mille
Devi accedere o registrarti per scrivere nel forum
5 risposte