Manipulação de conteúdos

As classes que implementam as estruturas de dados em Java têm como conteúdo objetos da classe java.lang.Object. Como todas as classes são derivadas de Object, qualquer objeto de qualquer classe pode estar contido nessas estruturas.

No entanto, variáveis de tipos primitivos de Java (tais como boolean, byte, char e int) não podem ser armazenadas diretamente nessas estruturas, pois não são objetos. Para manipular coleções desses tipos, é preciso utilizar a classe wrapper correspondente ao tipo primitivo desejado. Por exemplo, uma variável do tipo int deverá ser encapsulada em um objeto da classe java.lang.Integer.

Outro aspecto que vale a pena destacar é o uso de upcast e downcast. Quando se armazena qualquer objeto em uma dessas estruturas de dados, realiza-se automaticamente um upcast da classe desse objeto para a classe Object. Assim, o seguinte trecho de código é perfeitamente válido:

   Vector v = new Vector();
   v.addElement("xyz");

No entanto, a retirada de qualquer elemento da estrutura retorna um Object e um downcast explícito é necessário:

   String s = (String) v.elementAt(0);

© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP

Last modified: Mon Nov 29 13:12:51 EDT 1999