A.
Map<String,
String> m = newSortedMap<String, String>();
B.
Collection m = new TreeMap<Object, Object>();
C.
HashMap<Object,
Object> m = newSortedMap<Object, Object>();
D.
SortedMap<Object,
Object> m = new TreeMap<Object, Object> ();
E.
Hashtablem= new HashMap();
F.
Map<List,
ArrayList> m = new Hashtable<List, ArrayList>();
Risposta D e F
A.
SortedMap è un'interfaccia che estende proprio
l'interfaccia Map. Infatti :
public interface
SortedMap<K, V> extends Map<K, V>
Quindi questo codice non ha senso perchè si sta
cercando di instanziare un' interfaccia.
B.
TreeMap viene da Map infatti :
public class
TreeMap<K,V> extends AbstractMap<K,V> implements
NavigableMap<K,V> à
public abstract
class AbstractMap<K,V> extends Object implements Map
Non possiamo instanziare un oggetto TreeMap e
assegnare il reference ad una variabile di tipo Collection.
Dobbiamo fare un cast per arrivare almeno a
compilare:
Collection m =
(Collection) new TreeMap<Object, Object>();
Invece avrebbe avuto senso partire dall'interfaccia
Map, infatti questo codice compila:
Map m = new
TreeMap<Object, Object>();
C.
public interface
SortedMap<K, V> extends Map
public class
HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,
SortedMap è una interfaccia e noi stiamo cercando di
instanziarla. Questo non è
possibile.
D.
Questo è corretto perchè stiamo instanziando un
oggetto di tipo TreeMap (public class TreeMap<K,V> extends
AbstractMap<K,V>) assegnando il reference ad una variabile di tipo
SortedMap (public interface SortedMap<K, V> extends Map).
E.
Questo codice non ha senso perchè Hashtablem non può
essere risolto in una variabile non essendo mai stato creato.
F.
Questo è corretto perchè stiamo instanziando un
oggetto di tipo Hashtable (public class Hashtable<K,V> extends
Dictionary<K,V> implements Map<K,V>,) assegnando il reference ad una variabile di tipo Map
(public interface Map<K,V>).
Riferimenti :
http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html
Riferimenti :
http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html
Nessun commento:
Posta un commento