Stavo passando attraverso il codice sorgente dell'hashmap concomitante e ho scoperto che è serializzabile. Anche HashMap è serializzabile.
Perché hashmap / hashmap concomitante è serializzabile? Intendo perché questa scelta progettuale è stata fatta.
risposte:
2 per risposta № 1HashMap è serializzabile, gli strumenti di classe Serializable
interfaccia
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
private static final long serialVersionUID = 362498820763181265L;
Lo stesso è ConcurrentHashMap:
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V>
implements ConcurrentMap<K,V>, Serializable {
private static final long serialVersionUID = 7249069246763182397L;
puoi ottenere maggiori dettagli su java serialize nel seguente link
http://www.tutorialspoint.com/java/java_serialization.htm
1 per risposta № 2
Come già detto, HashMap
è Serializable
, ma la mappa o Collection
l'interfaccia non costringe l'implementazione di ogni raccolta ad essere "serializzabile". Se vuoi crearti sei proprio tu Set
o Map
e non impostarlo su serializzabile, è una tua scelta e non avrebbe senso forzare le persone a farlo.
Ma la mia ipotesi è, la maggior parte delle classi di utilità come Collection
le implementazioni sono serializzabili quindi non tutti devono crearne una propria SerializableHashMap
, perché queste classi sono usate molto e molte persone li serializzano. Quindi è una caratteristica di base per loro di avere.