Questão nº 65

Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 65)

FGV2024Analista Judiciário - TI - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Cver comentário ↓

O paradigma funcional, evidenciado na linguagem LISP, criada em 1958, voltou com muita força atualmente, sendo incluído em diversas linguagens, como o Java. Considere o trecho de código apresentado a seguir.

List<String> lista =
   Arrays.asList("UM","DOIS","TRES");
for(int i=0; i<lista.size(); i++){
   System.out.println(lista.get(i));
}

Para utilizar o paradigma funcional, o loop para apresentação dos valores deve ser reescrito da seguinte forma:

Resposta comentada

Gabarito Alternativa C

A programação funcional em Java nos permite expressar operações sobre coleções de dados de forma mais declarativa, focando no "o quê" fazer com cada elemento, usando lambdas (funções anônimas) e métodos como `forEach` ou a Stream API.

(A) Incorreta: Esta é uma sintaxe de "enhanced for loop" (for-each loop), que é mais concisa que o `for` tradicional com índice, mas ainda é um estilo de programação imperativo, não funcional. É o distrator mais tentador, pois é uma forma moderna e comum de iterar, mas não utiliza lambdas ou a abordagem declarativa característica do paradigma funcional em Java.
(B) Incorreta: Esta abordagem utiliza um `Iterator` dentro de um `for` loop, que é uma forma explícita e imperativa de percorrer uma coleção, focando em como a iteração acontece.
(C) Correta: Esta alternativa utiliza o método `forEach` da interface `Iterable` (ou `Stream`), que aceita uma lambda expression (`s -> System.out.println(s)`). Isso é um exemplo claro de programação funcional em Java, onde passamos uma função (a lambda) para ser aplicada a cada elemento da lista, expressando o "o quê" fazer.
(D) Incorreta: Similar à alternativa B, esta é uma forma imperativa de usar um `Iterator` com um `while` loop para percorrer a coleção.
(E) Incorreta: Esta é uma variação do "enhanced for loop" (for-each loop) usando a inferência de tipo `var` (introduzida no Java 10). Embora `var` seja um recurso moderno do Java, a estrutura do loop em si continua sendo imperativa, e não funcional.

Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho