A linguagem Java possui uma API chamada Collections que fornece algumas estruturas de dados já implementadas que fornecem dinamismo e são fáceis de trabalhar. Ao declarar um elemento novo, como uma lista, por exemplo, podemos utilizar o recurso "Generics", que permite indicar o tipo de elemento que estará em nossa lista. Por exemplo, o código
List listaDeStrings = new ArrayList();
define uma lista que contém apenas Strings.
Considerando o texto acima, avalie as afirmações abaixo.
I – Ao declarar uma lista do tipo ArrayList sem utilizar o recurso "Generics" (o tipo de dados entre os sinais "<" e ">"), a lista permitirá a inclusão de objetos de qualquer tipo.
II – A interface List define como serão as listas, e possui diferentes implementações, sendo ArrayList uma dessas implementações.
III – A declaração do código acima está incorreta, pois a variável é do tipo List, mas é atribuído um objeto do tipo ArrayList.
IV – A estrutura ArrayList é, na verdade, um Array e possui a mesma limitação de tamanhos fixos de Arrays comuns.
É correto o que se afirma em:
Soluções para a tarefa
Marquei I e II apenas.
Avaliando as alternativas em Corretas e Erradas, temos:
I – Ao declarar uma lista do tipo ArrayList sem utilizar o recurso "Generics" (o tipo de dados entre os sinais "<" e ">"), a lista permitirá a inclusão de objetos de qualquer tipo.
CORRETA! O recurso Generics foi empregado no Java 5.0 para reduzir, limitar, classificar itens de uma lista de forma que os mesmos fiquem alinhados e não misturados deixando tudo bagunçado. Quando não usamos o Generics a lista fica bagunçada, nela podendo entrar qualquer objeto de qualquer classificação.
II – A interface List define como serão as listas, e possui diferentes implementações, sendo ArrayList uma dessas implementações.
CORRETO! O List é a interface disponibiliazada pelo JAVA afim de fornecer meios de implementação de uma lista. Nessa interface vários comandos existem entre eles o Linkedlist e o Arraylist, cada um com uma função para a lista.
III – A declaração do código acima está incorreta, pois a variável é do tipo List, mas é atribuído um objeto do tipo ArrayList.
ERRADO! Como vimos na explicação acima a proposição colocada é totalmente verdadeira.
IV – A estrutura ArrayList é, na verdade, um Array e possui a mesma limitação de tamanhos fixos de Arrays comuns.
ERRADO! A Arraylist não terá o mesmo limite de tamanho que uma Array, tendo o tamanho dos componentes nela composto, ao invés de um tamanho fixo.
GABARITO FINAL: ESTÃO CORRETAS AS ALTERNATIVAS I E II.