View Full Version : [Java]Domanda HashSet
e-commerce84
07-10-2011, 19:30
Ciao,
ma se faccio qualcosa del genere:
private Set<Purchase> purchases = new HashSet<Purchase>(0);
cosa faccio esattamente? dichiaro un insieme non ordinato di oggetti di tipo Purchase?
Se avessi capito bene come mai lo dichiara di tipo Set e lo costruisce di tipo HashSet?
Cosa stà a significare quel (0) prima del ; finale?
Grazie
Andrea
Esatto. Quello zero indica la capacità iniziale dell'insieme. In genere se non si sa di preciso quanti elementi ci andranno a finire è meglio non specificare niente.
Ciao,
ma se faccio qualcosa del genere:
private Set<Purchase> purchases = new HashSet<Purchase>(0);
cosa faccio esattamente? dichiaro un insieme non ordinato di oggetti di tipo Purchase?
Se avessi capito bene come mai lo dichiara di tipo Set e lo costruisce di tipo HashSet?
Cosa stà a significare quel (0) prima del ; finale?
Grazie
Andrea
tu vuoi un oggetto che possa puntare ad un Set fatto da oggetti Purchase, senza preoccuparti dell'implementazione concreta di tale struttura, specificando solo l'interfaccia (Set) senza alcun dettaglio implementativo.
Poi puoi avvalorare quest'interfaccia con l'istanziazione di un oggetto (concreto), e per questo chiami la classe HashSet, classe che implementa l'interfaccia Set tramite l'hashing, da qui il nome.
Ad esempio:
List<Frutta> lista_frutta = new ArrayList<Frutta>()
List<Frutta> lista_frutta_2 = new LinkedList<Frutta>()
lista_frutta e lista_frutta_2 possono essere utilizzate alla stessissima maniera lato "utente" eppure l'implementazione è nettamente differente. Cambia qualcosa da una all'altra? Certo che sì, questioni di complessità computazionale, sta al bravo programmatore scegliere.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.