Hashmap che ordina per chiave, perchè?

di il
3 risposte

Hashmap che ordina per chiave, perchè?

Salve ragazzi eccomi con un altro quesito: gli hashmap.


So che questi non hanno un ordine definito nell'inserire elementi, eppure ogni volta che li stampo mi ritrovo con le chiavi ordinate, come mai?


Sapete dirmi perchè?

Vi ringrazio

3 Risposte

  • Re: Hashmap che ordina per chiave, perchè?

    Ciao ultrasound, grazie per la risposta , non sto usando i set, ma i map, Precisamente gli hashmap.

    L'inserimento non è ordinato sul campo delle chiavi, ma la stampa si, non che sia un problema, ma lo ritengo un comportamento strano, come fa un hashmap che per definizione non ha ordine, ad ordinarsi?
  • Re: Hashmap che ordina per chiave, perchè?

    In realtà sto usando le hashmap proprio perché non mi interessa l'ordine, solo che stampando si ha sempre un ordine per le chiavi in maniera CRESCENTE... La mia domanda è nata dalla pura curiosità, per carità poco mi importa e se mi importasse usere o la linked o la treemap, però questo ordinamento nell'hashmap non me lo aspettavo, percui ho chiesto se fosse una cosa normale o è solo un caso
  • Re: Hashmap che ordina per chiave, perchè?

    Francesco93 ha scritto:


    In realtà sto usando le hashmap proprio perché non mi interessa l'ordine, solo che stampando si ha sempre un ordine per le chiavi in maniera CRESCENTE...
    Dipende da cosa sono le chiavi .... es. Integer? Se sì, è possibile (come caso particolare) che con poche chiavi e con valori magari consecutivi risultino ordinate. Ma solamente perché il hashCode che viene usato per indirizzare nella lista dei "bucket" interna utilizza direttamente il valore del int.

    Francesco93 ha scritto:


    però questo ordinamento nell'hashmap non me lo aspettavo, percui ho chiesto se fosse una cosa normale o è solo un caso
    Sicuramente è solo un caso. Ricorda che HashMap NON è né "ordered" né "sorted". E tra l'altro man mano che si aggiungono elementi, l'ordine può pure cambiare a causa del rehashing per espandere la lista dei bucket.
Devi accedere o registrarti per scrivere nel forum
3 risposte