Salve, sto studiando il framework Collection e mi sono sorte alcune domande:
1)In un oggetto di classe List è garantito l'ordine di inserimento?
2) mentre per l'HashSet?
3) e in un oggetto di classe LinkedHashSet?
saluti
tulipan
Salve, sto studiando il framework Collection e mi sono sorte alcune domande:
1)In un oggetto di classe List è garantito l'ordine di inserimento?
2) mentre per l'HashSet?
3) e in un oggetto di classe LinkedHashSet?
saluti
tulipan
Quando si affronta il Collections Framework è bene apprendere due concetti:
- quando una collezione è (un)ordered
- quando una collezione è (un)sorted
Una collezione è "ordered" quando l'ordine di iterazione (con l'Iterator) è un ordine noto, prevedibile, insomma non a casaccio.
Una collezione è "sorted" quando è mantenuta internamente ordinata basandosi sul contenuto degli oggetti con un criterio di comparazione stabilito da Comparable/Comparator. sorted è un principio più forte di ordered, quindi una collezione sorted è anche ordered.
Tutti i List sono collezioni basate su indici, la sequenza è quella in cui sono stati aggiunti gli oggetti. E sono quindi collezioni ordered/unsorted.
HashSet è unsorted/unordered, l'ordine di iterazione non è (facilmente) prevedibile e può anche cambiare man mano che si aggiungono elementi.
LinkedHashSet è ordered/unsorted, a fianco del HashSet c'è una lista (doppiamente) linkata che mantiene l'ordine di inserimento degli oggetti. L'ordine di iterazione è appunto questo.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet