Questão de prova. Método / Exception. Podem Ajudar?

5 respostas
A

Estou tentando rodar o código pra confirmar o resultado da questão, mas estou com dificuldades, a pergunta é a seguinte:

1 - Considere o método a seguir:

public static void metodo() {

	Set set = new TreeSet();

	set.add("2");

	set.add(3);

	set.add("1");

	Iterator it = set.iterator();

	while (it.hasNext())

	System.out.print(it.next() + " ");

}

}

Qual afirmação é verdadeira?

Respostas

O método metodo() imprimirá 1 2

O método metodo() imprimirá 1 2 3

O método metodo() não compilará

O método metodo() produzirá uma exceção

5 Respostas

igomes

qual a dificuldade em rodar o método ?

A

Boa tarde Igomes.

Eu fiz assim:

public class TesteQuestao2 {
	
	public static void main(String[] args) {
		
		questao2 resultado = new questao2();
		resultado.metodo();
	}	
}

para tentar rodar o metodo da classe

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class questao2 {
	
		
		public static void metodo() {

		Set set = new TreeSet();

		set.add("2");

		set.add(3);

		set.add("l");

		Iterator it = set.iterator();

		while (it.hasNext())

		System.out.print(it.next() + " ");

	}

}

Mas da o erro:

Erro: Não foi possível localizar nem carregar a classe principal Prova2.TesteQuestao2

Na verdade eu gostaria de rodar o código para verificar qual das respostas abaixo esta certa:

Qual afirmação é verdadeira?

Respostas

O método metodo() imprimirá 1 2

O método metodo() imprimirá 1 2 3

O método metodo() não compilará

O método metodo() produzirá uma exceção

A

Na verdade eu gostaria de rodar o código para verificar qual das respostas abaixo esta certa:

Qual afirmação é verdadeira?

Respostas

O método metodo() imprimirá 1 2

O método metodo() imprimirá 1 2 3

O método metodo() não compilará

O método metodo() produzirá uma exceção

Marcus_Gp

A resposta é: O método metodo() produzirá uma exceção

Por que? Quando você adiciona um valor ao Set:

Set set = new TreeSet();
set.add("2");

O Set ordena os seus dados, então quando você faz

set.add(3);

Esse valor é um Integer e ele tentará comparar com o resto dos dados que estão lá dentro, como você tem uma String, ele não conseguirá utilizar o compareTo para ordernar os dados e lançará a exceção de ClassCastException.

Na documentação do TreeSet:

Throws:
ClassCastException - if the specified object cannot be compared with the elements currently in this set

Espero ter ajudado.

A

Marcus, muito obrigado!

Consegui entender!!!

vou dar mais uma revisada no Set.

Criado 9 de novembro de 2016
Ultima resposta 9 de nov. de 2016
Respostas 5
Participantes 3