Prévia do material em texto
ATIVIDADE AVALIATIVA SEMANA 5 – PROGRAMACAO ORIENTADA A OBJETO COM230 PERGUNTA 1 1. O código a seguir é um exemplo de utilização do TreeMap. Analise o código e as afirmações e em seguida escolha a alternativa correta. import java.util.Map; import java.util.TreeMap; public class MainTesteMap { public static void main(String [] args) { Map<Integer,String> nomes = new TreeMap<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); } } } I. No TreeMap, a adição e a recuperação dos dados são iguais às do HashMap. II. Os dados no TreeMap são ordenados pela chave e apenas os valores armazenados podem ser nulos, mas a chave não. III. A saída da execução do código é dada de acordo com a sequência de inserção. IV. A saída da execução do código nem sempre terá a mesma ordem. Apenas II e IV estão corretas. Apenas I e II estão corretas. Apenas I e III estão corretas. Apenas II, III e IV estão corretas. Apenas I, II e IV estão corretas. 1 pontos PERGUNTA 2 1. Disponível no pacote java.util, a API Collections é um conjunto de classes e interfaces que implementam Collection. Assinale a alternativa correta: I. Uma colecção Set é uma colecção que não admite elementos duplicados. A forma como consegue isso é baseada no método equals dos elementos que tentas inserir. II. A interface-raiz na hierarquia e coleções a partir da qual as interfaces Set e List são derivadas chama-se Collection III. Set é uma coleção que possui elementos duplicados IV. A interface List é uma coleção que associa chaves a valores e que não pode conter chaves duplicadas. Apenas I, II e IV estão corretas. Apenas I, II e III estão corretas. Apenas I e IV estão corretas. Apenas I e II estão corretas. Apenas II e III estão corretas. 1 pontos PERGUNTA 3 1. Considere a sequência do código a seguir: import java.util.LinkedHashSet; import java.util.Set; public classTesteHashSet { public static void main(String [] args) { Set<String> nomes = new LinkedHashSet<String>(); nomes.add("Joao"); nomes.add("Jose"); nomes.add("Maria"); nomes.add("Julio"); nomes.add("Fernanda"); nomes.add("Heloisa"); nomes.add("Ana"); for (String nome : nomes) { System.out.println(nome); } } } Acerca da utilização da Classe LinkedHashSet, assinale a alternativa correta: A ordem correta é Ana, Joao, Jose, Julio, Maria, Fernanda, Heloisa. A ordem correta é Joao, Jose, Maria, Julio, Fernanda, Heloisa, Ana. A ordem em que os dados serão retornados é a mesma em que foi inserida. A ordem em que os dados serão retornados não é garantida. A ordem correta é Ana, Joao, Jose, Maria, Julio, Fernanda, Heloisa. 1 pontos PERGUNTA 4 1. Acerca das estruturas do tipo set analise as afirmações a seguir e assinale a alternativa correta I. Estruturas de dado do tipo “Set” são conhecidas por aceitar apenas valores únicos. II. TreeSet, HashSet e LinkedHashSet implementam a interface Set. III.HashSet usa HashTable em sua implementação e garante a ordenação dos seus elementos. IV. O HashSet é o mais rápido de todos, este usa HashTable e seus elementos não são ordenados. Apenas II e III estão corretas. Apenas I, II e IV estão corretas. Apenas I, II e III estão corretas. Apenas I e II estão corretas. Apenas I e IV estão corretas. 1 pontos PERGUNTA 5 1. Acerca do uso de Maps e Set em programação orientada a objetos usando a linguagem Java, assinale a alternativa correta: Não é possível implementar um Map com tabelas Hash. A interface SortedMap estende Map e não mantém suas chaves em ordem classificada. As chaves em um Map não devem ser únicas. HashMap é um Map cuja estrutura em que os dados são guardados é basicamente uma HashTable, com a diferença de não permitir elementos e chaves nulos. Maps se diferenciam de Set porque contém chaves e valores, enquanto Set contém apenas valores. 1 pontos PERGUNTA 6 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 O HashMap não apresenta uma ordenação específica e permite valores nulos tanto para a chave quanto para os valores armazenados. A ordem correta é Joao, Jose, Maria, Julio, Fernanda, Heloisa, Ana. A ordem em que os dados serão retornados não é garantida. A ordem em que os dados serão retornados é garantida. 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. 1 pontos PERGUNTA 7 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 III está correta. Apenas II está correta. Apenas I está correta. Apenas I, II e III estão corretas. Apenas II, III e IV estão corretas. 1 pontos PERGUNTA 8 1. Considere a sequência do código a seguir: import java.util.HashSet; import java.util.Set; public classTesteHashSet { public static void main(String [] args) { Set<String> nomes = new HashSet<String>(); nomes.add("Joao"); nomes.add("Jose"); nomes.add("Maria"); nomes.add("Julio"); nomes.add("Fernanda"); nomes.add("Heloisa"); nomes.add("Ana"); for (String nome : nomes) { System.out.println(nome); } } } Acerca da utilização da Classe HashSet, assinale a alternativa correta A ordem em que os dados serão retornados é a mesma em que foi inserida. A ordem em que os dados serão retornados não é garantida. A ordem correta é Ana, Joao, Jose, Maria, Julio, Fernanda, Heloisa. A ordem correta é Joao, Jose, Maria, Julio, Fernanda, Heloisa, Ana. A ordem correta é Ana, Joao, Jose, Julio, Maria, Fernanda, Heloisa. 1 pontos PERGUNTA 9 1. A motivação para métodos genéricos é que eles podem ser utilizados para realizar operações semelhantes em tipos diferentes de dados. Analise o trecho de código a seguir e escolha a alternativa correta List list = new LinkedList(); list.add(new Integer(1)); Integer i = list.iterator().next(); I. O trecho de código está correto e não emitirá erros. II. O compilador reclamará da última linha, pois ele não sabe que tipo de dados é retornado.O compilador exigirá uma conversão explícita. III. Ao olhar para os tipos, o compilador além de poder garantir que é um objeto também sabe qual o tipo, o que não requer uma conversão explícita. IV. O ajuste correto seria modificar a última linha para List<Integer> list = new LinkedList<>(). Apenas II, III e IV estão corretas. Apenas I está correta. Apenas II está correta. Apenas II e IV estão corretas. Apenas I e II estão corretas. 1 pontos PERGUNTA 10 1. Podemos definir nossas próprias classes com tipo genérico. Um tipo genérico é uma classe ou interface que é parametrizada em tipos. Usamos colchetes angulares (<>) para especificar o parâmetro de tipo. Assinale a alternativa correta ao analisar o código a seguir public class Genericos { private Object t; public Object get() { return t; } public void set(Object t) { this.t = t; } public static void main(String args[]){ Genericos type = new Genericos(); type.set("Teste"); String str = type.get(); } } O código vai emitir um erro em tempo de execução. O código não apresenta erros e executará sem problemas. Trata-se de um código que não pode ser modificado para ser usado métodos e classes genéricos. Para que o código seja funcional com generics, basta acrescentar depois de public class Genericos os colchetes <> (de modo a ficar public class Genericos<>). O código vai emitir um erro em tempo de compilação.