Esiste qualche differenza pratica tra uno Set
e Collection
in Java, oltre al fatto che uno Collection
può includere lo stesso elemento due volte? Hanno gli stessi metodi.quando usare Set vs. Collection?
(ad esempio, fa Set
mi danno più opzioni per utilizzare le librerie che accettano Set
s, ma non Collection
s?)
edit: mi viene in mente almeno 5 diverse situazioni per giudicare questa domanda. Qualcun altro può venire di più? Voglio assicurarmi di capire le sottigliezze qui.
- progettazione di un metodo che accetta un argomento di
Set
oCollection
.Collection
è più generale e accetta più possibilità di input. (se sto progettando una classe specifica o un'interfaccia, sono più gentile con i miei consumatori e più severo sui sottoclassi/implementatori se utilizzoCollection
.) - progettando un metodo che restituisce un
Set
oCollection
.Set
offre più garanzie diCollection
(anche se è solo la garanzia di non includere un elemento due volte). (se sto progettando una classe specifica o un'interfaccia, sono più gentile con i miei consumatori e più severo sui sottoclassi/implementatori se utilizzoSet
.) - progettando una classe che implementa l'interfaccia
Set
oCollection
. Problemi simili al n. 2. Gli utenti della mia classe/interfaccia ottengono maggiori garanzie, sottoclassi/implementatori hanno più responsabilità. - progettazione di un'interfaccia che estende l'interfaccia
Set
oCollection
. Molto simile al # 3. - codice di scrittura che utilizza uno
Set
oCollection
. Qui potrei anche usareSet
; l'unica ragione per me per usareCollection
è se torno unCollection
dal codice di qualcun altro, o se devo gestire una raccolta che contiene duplicati.
buona domanda ma imho scarse risposte – Kemoda