Questão nº 35
Questão de Tecnologia da Informação · FCC SEGEP-MA 2018 (nº 35)
A API Java Collections traz uma interface que especifica o que uma classe deve ser capaz de fazer para ser uma lista. Para a criação de listas, considere as instruções abaixo:
I. `ArrayList lista = new ArrayList();`
II. `List lista = new ArrayList();`
III. `List<String> lista = new LinkedList<>();`
IV. `ArrayList[] lista = new ArrayList[]();`
Apresenta corretamente uma lista o que consta APENAS em
- AI e IV.
- BI, II e III. (alternativa correta)
- CII e III.
- DI, II e IV.
- EIII e IV.
Resposta comentada
Gabarito Alternativa B
Em Java, uma lista é uma coleção ordenada de elementos, onde cada elemento tem um índice. Você pode criar uma lista usando implementações como ArrayList (que usa um array dinâmico) ou LinkedList (que usa uma estrutura de nós encadeados).
- (A) Incorreta: A alternativa IV está incorreta.
- (B) Correta: As instruções I, II e III criam instâncias válidas de listas.
- I.
ArrayList lista = new ArrayList();: Cria umaArrayListe a referencia com o tipo concretoArrayList. É funcional, embora menos flexível que usar a interfaceList. - II.
List lista = new ArrayList();: Cria umaArrayListe a referencia com a interfaceList. Esta é a melhor prática, pois permite trocar a implementação (ex: paraLinkedList) sem alterar o código que usa a variávellista. Isso é polimorfismo. - III.
List<String> lista = new LinkedList<>();: Cria umaLinkedList(que também implementaList) e a referencia com a interfaceList, utilizando generics (<String>) para especificar que a lista conterá apenas objetos do tipoString. É uma forma moderna e segura de criar listas.
- I.
- (C) Incorreta: A alternativa I também está correta.
- (D) Incorreta: A alternativa IV está incorreta.
- (E) Incorreta: As alternativas I e II também estão corretas.
Distrator mais tentador (IV):
- (IV)
ArrayList[] lista = new ArrayList[]();: Esta instrução tenta criar um array deArrayLists, não uma única lista. Além disso, a sintaxenew ArrayList[]()está incorreta para inicializar um array em Java; seria necessário especificar o tamanho (ex:new ArrayList[10]) ou fornecer elementos (ex:new ArrayList[]{new ArrayList(), new ArrayList()}). A armadilha aqui é confundir "uma lista" com "um array de listas" e também usar uma sintaxe de inicialização de array inválida.
Fonte: FCC SEGEP-MA 2018 Analista Executivo - Programador de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.