ArrayList, TreeMap e Hashtable

5 respostas
F

Olá pessoal, preciso que alguém me ajude a comentar esse trecho de código, pois estou com dificuldades.

public static void main(String[] args) {
// TODO code application logic here

ArrayList<String> a = new ArrayList<String>();
TreeMap<Integer,String> t = new TreeMap<Integer,String>(); 
Hashtable<Integer,String> h= new Hashtable<Integer,String>();
System.out.print((a instanceof Collection)+",");
System.out.print((t instanceof Collection)+",");
    System.out.print(h instanceof Dictionary);

}

Sei que o resultado será “true,false,true” mas gostaria de entender.

Obrigado!

5 Respostas

juniorsatanas
[quote]
public static void main(String[] args) { 
// TODO code application logic here 

ArrayList<String> a = new ArrayList<String>();  nova cadeia de caracteres stringue
TreeMap<Integer,String> t = new TreeMap<Integer,String>();    novo mapa de listagem inteiro e string
Hashtable<Integer,String> h= new Hashtable<Integer,String>();  nova tabela de mapeada
System.out.print((a instanceof Collection)+",");  sistema saida imprimi a colecao A
System.out.print((t instanceof Collection)+","); sistema saida imprimi a colecao T
System.out.print(h instanceof Dictionary); sistema saida imprimi a Dicionario(da tabela de mapas) H

} 
[/quote]
F

Junior,
Obrigadom por responder mas ainda estou com uma dúvida.
Nestas 3 linhas abaixo:

System.out.print((a instanceof Collection)+","); sistema saida imprimi a colecao A
System.out.print((t instanceof Collection)+","); sistema saida imprimi a colecao T
System.out.print(h instanceof Dictionary); sistema saida imprimi a Dicionario(da tabela de mapas) H

Por que a coleção a é true, a coleção t é false e a coleção h e true?

renamed

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?

F

Muito obrigado renamed!!!

Agora estou entendendo como funciona interface Collection.
Valeu pela explicação!!

juniorsatanas

renamed nao faria melhor ! Valeu…

Criado 25 de abril de 2010
Ultima resposta 25 de abr. de 2010
Respostas 5
Participantes 3