In breve: tutto il codice che si basa sulla rappresentazione sottostante sarà da modificare se si decide di modificare la rappresentazione.
Ad esempio, si è deciso di utilizzare TreeMap
all'inizio, ma in tal caso non si desidera più ordinare (nella maggior parte dei casi), quindi passare a HashMap
. Qualcuno sta scorrendo la tua mappa cercando di ottenere una lista crescente. !!
Utilizzando lo schema di iterazione, è sempre possibile dare all'utente la possibilità di eseguire il looping di qualcosa con una determinata logica (o solo casuale, che è una sorta di logica) senza sapere cosa è sotto il cofano.
Ora, se si utilizza HashMap
anziché TreeMap
, è possibile esporre una vista ordinata all'utente.Se fornisci questo SortedIterator
e informi l'utente "utilizzando questo garantirà che il risultato sia ordinato, ma non posso dirti nulla di ciò che è sotto", puoi cambiare la rappresentazione per essere quello che vuoi, purché il contratto di questo SortedIterator
è gestito da te.
fonte
2013-05-20 17:09:31
In breve, tu (l'utente) usi un 'Iterator' allo stesso modo per un' ArrayList', 'HashMap',' HashSet', 'TreeSet'. Non ti interessa l'implementazione dietro –