Baixe o app para aproveitar ainda mais
Prévia do material em texto
1/10 - Considerando a classe Estante a seguir, marque a alternativa que representa um método de acesso (setter ou getter). public Estante(int qtde) { public boolean isCheia() public void limpar() { public Livro remover(int i) { public void adicionar(Livro l) { 2/10 - Considere uma classe chamada Regra, cujos objetos podem conter regras de validação de texto. Essa classe possui o método validar, que recebe uma String e retorna um boolean. Agora, considere que foi criado um objeto chamado regraCPF que valida CPFs: Regra regraCPF = new Regra('000.000.000-00'); Também considere uma classe de Lista que possuísse o método validarTodos que aceitasse como parâmetro a interface Predicate. Sobre essa situação, assinale a alternativa correta. Para utilizar o validador, seria necessário criar uma classe utilitária similar a: E então chamar: Lista.validarTodos(Util::validarCPF); O objeto regraCPF não poderia ser criado por ser de um objeto. Seria possível usar o método por meio da chamada: lista.validarTodos(Regra::validar); Seria possível usar o método por meio da chamada: lista.validarTodos(regraCPF::validar); Para validar, seria obrigatório o uso de um lambda: lista.validarTodos(p -> regraCPF.validar(p)); 3/10 - Assinale a alternativa que indica o que precisa ser implementado para que um TreeMap funcione corretamente com uma classe implementada por você usada como chave. Nada, basta adicionar objetos ao TreeMap. A interface Comparator e os métodos equals e toString. Os métodos hashCode e equals. As interfaces Comparator e Comparable e o método hashCode. A interface Comparable. 4/10 - Sobre os métodos equals e hashCode, assinale a alternativa correta: O método equals deve levar em conta todos os atributos do objeto, caso contrário, objetos diferentes podem ser considerados iguais. Objetos considerados iguais no equals devem ter hashCodes iguais. Objetos diferentes, hashCodes diferentes. Um bom hashCode terá um componente aleatório, pois isso evitaria que duas chamadas diferentes gerassem o mesmo valor. Um método hashCode que retorne apenas o número 1 é correto, embora seja pouquíssimo eficiente. O equals da classe Aluno foi implementado utilizando os campos matrícula e nome. Já o hashCode deve ser implementado apenas com a matrícula, pois ela identifica o Aluno (chave). 5/10 - O Java possui um pacote chamado java.util.function, que contém uma série de interfaces já definidas para serem utilizadas com lambda. Sobre esse assunto, assinale a alternativa correta. O uso dessas interfaces é obrigatório, já que fazem parte da biblioteca padrão da plataforma Java. Seu uso é desejável, pois o compromisso com interfaces é menor do que o de classes abstratas. Elas são desejáveis, pois evitam que se crie código simples e óbvio. Além disso, suas implementações já podem definir métodos padrão úteis. Seu uso é obrigatório, já que, sem a definição de um tipo de dado, é impossível declarar uma variável lambda. Elas devem ser evitadas, pois a criação de interfaces específicas gera um código mais claro. 6/10 - Suponha que o programador queira criar um método ordenar que aceite dois parâmetros - um objeto da classe Lista que pode ser parametrizado com um tipo T e um objeto da classe Comparador, que também pode ser parametrizado com um tipo T - e comparar dois objetos desse tipo para dizer em que ordem irão. Ele faz isso por meio do método compare, que recebe dois parâmetros de entrada do tipo T, e retorna um inteiro com o valor -1, 0 ou 1 se o primeiro objeto for menor, igual ou maior que o segundo, respectivamente. Qual das alternativas a seguir seria a mais flexível para ser utilizada nessa situação? Assinale a alternativa correta. void ordenar(Lista lista, Comparador comparador) void ordenar(Lista T> lista, Comparador comparador) void ordenar(Lista T> lista, Comparador comparador) void ordenar(Lista lista, Comparador comparador) 7/10 - Assinale a alternativa que indica o que precisa ser implementado para que um HashMap funcione corretamente com uma classe implementada por você usada como valor. Os métodos hashCode, equals e toString. Somente o método hashCode. Nada. Quem depende de implementações específicas é a chave. Os métodos hashCode e equals. A interface Comparable ou a interface Comparator. 8/10 - O que imprime o código a seguir? Assinale a alternativa correta. ACDFGH ABCDEFGH ACH ACGH ACDEGH 9/10 - Um programa possui uma lista de objetos que representam transações bancárias. Elas possuem um atributo com a data, outro com o valor da transação e outro com o local onde a transação foi feita. A lista possui milhares de transações. Um programador deseja calcular a média de todos os valores gastos por determinada empresa. Considerando que ele já possui uma lista de transações, qual é a melhor opção? Assinale a alternativa correta. Utilizar um stream. Filtrar com o método filter, utilizar o mapToDouble sobre o valor da transação e o método average para calcular a média. Utilizar o método removeif para eliminar transações inválidas. Calcular a média das que restarem por meio do forEach ao final do processo. Copiar os dados para um conjunto ordenado e realizar o cálculo, o que descartaria automaticamente as transações duplicadas. Utilizar o iterator para iterar sobre a coleção. Realizar o cálculo das transações válidas, usar o método remove do iterator sobre as inválidas. Iterar sobre a coleção com um for each e realizar o cálculo é preferível por usar apenas um comando simples. 10/10 - Para implementar boas abstrações, objetos 'escondem' a funcionalidade interna de seus usuários, enquanto expõem uma interface pública simples. Assinale a alternativa que representa o nome dessa característica. Imutabilidade. Empacotamento. Modificadores de acesso. Encapsulamento. Métodos de acesso (getters e setters).
Compartilhar