Per quanto riguarda l'interfaccia Map<K,V>
:non supportati/operazioni addall aggiuntivi per Map <K,V> .keySet()
Perché keySet()
restituiscono un Set
che supporta l'operazione remove
, ma non supporta add()
e addAll()
operazioni?
Per quanto riguarda l'interfaccia Map<K,V>
:non supportati/operazioni addall aggiuntivi per Map <K,V> .keySet()
Perché keySet()
restituiscono un Set
che supporta l'operazione remove
, ma non supporta add()
e addAll()
operazioni?
Il Set
restituito da keySet
è sostenuta dal Map
, perciò la modifica mappa sono riflessa nel set, e viceversa. Ciò significa che chiamando remove
su quello Set
rimuove l'abbinamento Entry
dallo Map
.
non avrebbe alcun senso chiamare add
o addAll
su quel Set
, dal momento che non è possibile aggiungere il tasto [s] senza valore [s] per il corrispondente Map
.
pensare a quello che stai chiedendo:
si desidera recuperare tutte le chiavi di una mappa (e che insieme non è una "copia" delle chiavi, che rappresenta le chiavi della mappa).
E poi si chiede di aggiungere elementi a quelle CHIAVI. In altre parole: il "set di dati" che stai guardando ha il significato semantico di chiavi provenienti da una mappa. E vuoi aumentare quel "set di dati" - ma senza fornire le voci corrispondenti per quella mappa.
La cancellazione invece è diretta; l'eliminazione di una chiave cancellerà anche la voce corrispondente dalla mappa.
È perché ogni chiave nel set è collegata a un valore nella mappa. La rimozione di una chiave rimuoverà il valore associato, ma per aggiungere avrai bisogno di un valore e non solo di una chiave.