Uso do TreeSet dando erro...xception in thread "main" java.lang.ClassCastException:

OLá pessoal,

no exemplo abaixo por que da erro nesse exemplo :

xception in thread "main" java.lang.ClassCastException: cap07.Teste
	at java.util.TreeMap.compare(Unknown Source)
	at java.util.TreeMap.put(Unknown Source)
	at java.util.TreeSet.add(Unknown Source)
	at cap07.TestSet.main(TestSet.java:27)
public class TestSet {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		    Teste teste = new Teste();
		    Collection treeset = new TreeSet();
		    teste.codigo =10;
		    teste.nome  ="Paulo";
		    treeset.add(teste);
		    //
		    Teste teste1 = new Teste();
		    teste1.codigo =05;
		    teste1.nome  ="Cris";
		    
		    //
		    
		    
		    treeset.add(teste1);
		    
		    Iterator<Teste> i3 = treeset.iterator();  // make an iterator
		    while (i3.hasNext()) {
		      Teste d2 = i3.next();             // cast not required
		      System.out.println(d2.codigo);
		      System.out.println(d2.nome);
		      System.out.println("---------------------------");

		    }
	}

}
 class Teste{
	
	public String nome;
	public int codigo;
	
}

Ele não reconheceu a classe Teste.

Tente criar um outro construtor…

OLá,

me da erro na linha :

treeset.add(teste1);

não deixa adicionar outro objeto ?

Não deixa entrar outro objeto com valores diferentes ???

essa é minha duvida ???

e ae brother muita bronca nesses testes ?
olha só, o TreeSet com vc sabe é uma classe que não permite duplicatas e que tb é classificada, opa olha a bronca ai… Quando vc quizer usar um conjunto que é classificado os elementos que vc inseri dentro do conjunto precisa ser mutuamente comparavéis, coisa que sua classe Teste não é… Objetos de tipos diferentes não são mutuamente compáraveis… Então como podemos fazer para utiliza-lo dentro de um TreeSet ? Simples, só é necessário implementar a interface Comparable e “sobrepor” seu método compareTo().
Resumindo tudo, o que vc desejar inserir em um TreeSet precisa implementar a a interface Comparable.

Pegue esse exemplo que fiz e coloque na sua classe Teste.

class Teste implements Comparable< Teste >{

       public String nome;  
       public int codigo;
       
       public int compareTo( Teste teste ){
    	   return nome.compareTo( teste.nome );
       }

}

se vc não estiver usando java 5
faz assim:

class Teste implements Comparable{

       public String nome;  
       public int codigo;
       
       public int compareTo( Object o ){
    	   Teste t = ( Teste ) o;
                return nome.compareTo( t.nome );
       }

}

Abraços,
Qualquer coisa posta ai…
Rulio Vangellis.

valeu…obrigado