Olá
Você conhece herança e abstração por interface? Se sim, dá uma olhada no javadoc…
ArrayList
http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html
public class ArrayList<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
Como se pode ver, a classe ArrayList implementa a interface List que, por sua vez, herda da interface Collection.
public interface List<E>
extends Collection<E>
http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html
Como List herda de Collection e ArrayList implementa a interface List, ArrayList acaba se tornando uma instância de Collection também.
TreeMap
http://java.sun.com/javase/6/docs/api/java/util/TreeMap.html
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable
Dessa vez, TreeMap não implementa a interface Collection e nem herda de nenhuma classe que a implemente. Por isso, ela não é uma instância de Collections.
HashTable
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Hashtable.html
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, Serializable
Nesse caso tá fácil né? hehehe
Logo ali já diz que HashTable herda de Dictionary. Como a herança estabelece uma hierarquia de “é-um”, HashTable é um Dictionary. Logo, é uma instância dela.
ok?