Prévia do material em texto
PERGUNTA 1
Set e Map são duas interfaces importantes do Java, e ambas são encontradas na
estrutura da Coleção. Além disso, as interfaces Set e Map podem ser usadas para
armazenar uma Coleção de objetos na forma de uma única unidade. Nesse sentido,
“Maps diferem de Sets pelo fato de que Maps contêm chaves e valores, enquanto Sets
contêm somente valores. Três das várias classes que implementam a interface Map
são Hashtable, HashMap e TreeMap. Hashtables e HashMaps armazenam elementos
em Tabelas Hash, e TreeMaps armazenam elementos em árvores” (DEITEL; DEITEL,
2016, p. 561).
DEITEL, P.; DEITEL, H. Java: como programar. 10. ed. São Paulo: Pearson Education
do Brasil, 2016.
De acordo com o apresentado no texto, e com base nas características de Mapas,
identifique se são verdadeiras (V) ou falsas (F) as afirmativas a seguir.
I. ( ) A interface SortedMap estende Map e mantém as suas chaves em ordem
classificada – na ordem natural dos elementos ou em uma ordem especificada por uma
implementação Comparator. A classe TreeMap implementa SortedMap.
II. ( ) As classes Hashtable e HashMap permitem usar hashes sem ter de implementar
mecanismos de Tabela Hash – um exemplo clássico da reutilização, paradigma da
programação orientada a objetos.
III. ( ) A interface Java Map tem um método chamado putAll(), que pode copiar todos
os pares chave + valor (entradas) de outra instância do Map para si mesmo. Na teoria
dos Conjuntos, isso também é referido como a interseção de duas instâncias de Map.
Assinale a alternativa que apresenta a sequência correta.
a. V, V, F.
b. F, V, V.
c. V, V, V.
d. F, V, F.
e. V, F, V.
PERGUNTA 2
1. Analise o código a seguir em linguagem Java (qualquer versão), que cria um
conjunto de nomes com a classe HashSet.
public static void main(String[] args) {
HashSet<String> dset = new HashSet<String>();
dset.add("Zoraide");
dset.add("Maria");
dset.add("Janete");
dset.add("João");
dset.add("Heitor");
Iterator<String> iterator = dset.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
}
Em relação ao código, assinale a alternativa correta.
a. O código iterator.hasNext() retorna o próximo nome do conjunto em ordem
alfabética.
b. O código System.out.print(iterator.next() + " ") imprime os nomes por ordem de
inserção.
c. O código System.out.print(iterator.next() + " ") imprime os nomes não
necessariamente na ordem em que foram inseridos.
d. O código iterator.next() retorna o conjunto dos nomes em ordem alfabética.
e. O código iterator.next() retorna o próximo nome em ordem de inserção.
1,42 pontos
PERGUNTA 3
1. Em Java, os elementos do Map são armazenados em pares chave/valor. As chaves
são valores exclusivos associados a valores individuais. Um Mapa não pode conter
chaves duplicadas, e cada chave está associada a um único valor. Assim, leia o texto a
seguir sobre o uso de Mapas na orientação a objetos:
“Maps associam chaves a valores. As chaves em um Map devem ser únicas, mas os
valores associados não precisam ser. Se um Map contém chaves únicas e valores
únicos, diz-se que implementa um mapeamento de um para um. Se somente as
chaves são únicas, diz-se que o Map implementa um mapeamento de muitos para um
– muitas chaves podem mapear para um valor” (DEITEL; DEITEL, 2016, p. 560).
DEITEL, P.; DEITEL, H. Java: como programar. 10. ed. São Paulo: Pearson Education
do Brasil, 2016.
Sobre a utilização de Maps e as suas características, avalie as afirmativas a seguir.
I. Maps diferem de Sets pelo fato de que Maps contêm chaves e valores, enquanto
Sets contêm somente valores.
II. Se tentar armazenar uma entrada com a mesma chave de uma entrada anterior, a
segunda entrada será salva, automaticamente, com outro índice.
III. Quando inserimos um item em um Mapa de Hash não ordenado, ele pode residir
em qualquer posição no objeto Mapa.
IV. A função Hash é o núcleo da implementação de um Mapa de Hash. O hashing ideal
deve produzir um índice diferente para cada chave, impedindo, completamente, as
colisões.
Está correto o que se afirma em:
a. I, III e IV, apenas.
b. I, II e IV, apenas.
c. I e II, apenas.
d. I e III, apenas.
e. II e III, apenas.
1,42 pontos
PERGUNTA 4
1. Um Conjunto é uma Coleção que não pode conter elementos duplicados. Ele modela a
abstração do conjunto matemático e funciona de forma análoga aos conjuntos da
matemática. Trata-se de uma Collection que não permite elementos duplicados. Set
também adiciona um contrato mais forte no comportamento das operações Equals e
HashCode, permitindo que instâncias sejam comparadas significativamente, mesmo
que os seus tipos de implementação sejam diferentes. Duas instâncias de Set são
iguais se contiverem os mesmos elementos.
Observe as afirmações a seguir, sobre as Coleções em Java, e correlacione-as,
adequadamente, aos termos aos quais se referem.
1. TreeSet
2. HashSet
3. LinkedHashSet
I. Armazena os seus elementos em uma Tabela Hash. É a implementação de melhor
desempenho; no entanto, não oferece garantias quanto à ordem de iteração.
II. Armazena os seus elementos em uma árvore rubro-negra, ordena os seus
elementos com base em seus valores e é, substancialmente, mais lento do que outros
Conjuntos.
III. É implementado como uma Tabela Hash com uma lista encadeada passando por
ela e ordena os seus elementos com base na ordem em que foram inseridos no
Conjunto.
Assinale a alternativa que correlaciona, adequadamente, os dois grupos de informação.
a. 1-II; 2-I; 3-III.
b. 1-II; 2-III; 3-I.
c. 1-III; 2-II; 3-I.
d. 1-I; 2-II; 3-III.
e. 1-III; 2-I; 3-II.
1,42 pontos
PERGUNTA 5
1. Considere a sequência do código a seguir:
import java.util.HashMap;
import java.util.Map;
public class TesteHashMap {
public static void main(String [] args) {
Map<Integer,String> nomes = new HashMap<Integer,String>();
nomes.put(5,"Joao");
nomes.put(3,"Jose");
nomes.put(2,"Maria");
nomes.put(4,"Julio");
nomes.put(1,"Fernanda");
nomes.put(7,"Heloisa");
nomes.put(6,"Ana");
for (String nome : nomes.values()) {
System.out.println(nome);
}
}
}
Acerca da utilização da Classe HashMap, assinale a alternativa correta
A ordem correta é Joao, Jose, Maria, Julio, Fernanda, Heloisa, Ana.
A ordem em que os dados serão retornados não é garantida.
O HashMap não apresenta uma ordenação específica e permite valores nulos
tanto para a chave quanto para os valores armazenados.
O código acima não executa, pois para a inserção dos elementos usa-se o
método add ao invés do método put.
A ordem em que os dados serão retornados é garantida.
1,42 pontos
PERGUNTA 6
1. A motivação de estudar Generics é poupar o desenvolvedor quanto a redundância de
códigos. Analise as afirmações sobre métodos genéricos e escolha
a alternativa correta
I. Os métodos genéricos permitem especificar com uma única declaração de método,
um conjunto de métodos relacionados.
II. Classes e interfaces genéricas permitem especificar conjuntos de tipos
relacionados.
III. Quando o compilador encontra uma chamada de método, ele tenta localizar uma
declaração de método com um nome e parâmetros que são compatíveis com os tipos
de argumentos na chamada de método.
IV. Não podemos usar Generics em classes e interfaces.
Apenas I, II e III estão corretas.
Apenas II está correta.
Apenas III está correta.
Apenas I está correta.
Apenas II, III e IV estão corretas.
1,42 pontosPERGUNTA 7
1. A linguagem Java dispõe de um importante recurso, a interface “Map”. Nesse
sentido, analise as asserções a seguir e a relação proposta entre elas.
I. Um mapa é composto por um conjunto de associações entre um objeto-chave
e um objeto-valor, sendo equivalente ao conceito de dicionário, presente em
outras linguagens de programação.
II. O uso de mapas é bastante interessante, quando queremos buscar um objeto
pela sua chave.
Analisando essas asserções, é correto afirmar que:
a. as duas asserções são verdadeiras.
b. as duas asserções são falsas.
c. a primeira asserção é verdadeira e a segunda é falsa.
d. a primeira asserção é falsa e a segunda é verdadeira.