Logo Passei Direto
Buscar

semana_5_-_POO

Conjunto de questões sobre as interfaces Set e Map em Java e suas implementações (HashMap, Hashtable, TreeMap, SortedMap, HashSet), abordando ordenação, iteração, propriedades de chaves/valores e funcionamento do hashing.

Ferramentas de estudo

Questões resolvidas

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). 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.

I. (V)
II. (F)
III. (V)
a. V, V, F.
b. F, V, V.
c. V, V, V.
d. F, V, F.
e. V, F, V.

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.

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.

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.

I. O hashing ideal deve produzir um índice diferente para cada chave, impedindo, completamente, as colisões.
II. O hashing é uma técnica que permite a implementação de um Mapa de Hash.
III. O hashing é uma técnica que garante a ordem de iteração dos elementos em um Mapa de Hash.
IV. O hashing é uma técnica que permite a implementação de um Mapa de Hash com desempenho inferior ao de outras técnicas.
a
b
c
d
e

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.

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.
a
b
c
d
e

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.


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.

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.

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.

Apenas a asserção I é verdadeira.
Apenas a asserção II é verdadeira.
As asserções I e II são verdadeiras, e a II justifica a I.
As asserções I e II são verdadeiras, e a I justifica a II.
As asserções I e II são verdadeiras, mas a II não justifica a I.

I. A interface Map permite associar um valor a uma chave.
II. A interface Map permite associar um valor a um índice.
Apenas a asserção I é verdadeira.
Apenas a asserção II é verdadeira.
As asserções I e II são verdadeiras, e a II justifica a I.
As asserções I e II são verdadeiras, e a I justifica a II.
As asserções I e II são verdadeiras, mas a II não justifica a I.

Analisando essas asserções, é correto afirmar que:

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.
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.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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). 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.

I. (V)
II. (F)
III. (V)
a. V, V, F.
b. F, V, V.
c. V, V, V.
d. F, V, F.
e. V, F, V.

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.

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.

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.

I. O hashing ideal deve produzir um índice diferente para cada chave, impedindo, completamente, as colisões.
II. O hashing é uma técnica que permite a implementação de um Mapa de Hash.
III. O hashing é uma técnica que garante a ordem de iteração dos elementos em um Mapa de Hash.
IV. O hashing é uma técnica que permite a implementação de um Mapa de Hash com desempenho inferior ao de outras técnicas.
a
b
c
d
e

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.

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.
a
b
c
d
e

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.


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.

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.

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.

Apenas a asserção I é verdadeira.
Apenas a asserção II é verdadeira.
As asserções I e II são verdadeiras, e a II justifica a I.
As asserções I e II são verdadeiras, e a I justifica a II.
As asserções I e II são verdadeiras, mas a II não justifica a I.

I. A interface Map permite associar um valor a uma chave.
II. A interface Map permite associar um valor a um índice.
Apenas a asserção I é verdadeira.
Apenas a asserção II é verdadeira.
As asserções I e II são verdadeiras, e a II justifica a I.
As asserções I e II são verdadeiras, e a I justifica a II.
As asserções I e II são verdadeiras, mas a II não justifica a I.

Analisando essas asserções, é correto afirmar que:

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.
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.

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.