2015-05-31 6 views

risposta

11

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.

2

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.

2

È 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.