Duvida com Map

eu to colocando essa duvida aqui, pois de um problema de exceção
codigo

   //exibe uma faixa etaria de idade que o usuário determinar   
     public  Map pesquisaPorIdade(int idadeMin, int idadeMax){  
           if(mapa.size() == 0){  
               return null;  
           }  
          if (idadeMin <= 0 && idadeMax<=0)  
               return null;  
              
           if(idadeMin >= idadeMax){  
              return null;  
          }              
          for(int i = 0; i < mapa.size(); i++){  
              Pessoa aux = (Pessoa)mapa.get(i);  
              if(idadeMin <= aux.getIdade() && idadeMax >= aux.getIdade()){  
                  mapa.put(aux.getIdade(),aux);  
              }else{}  
          }  
      return mapa;  
      }

o problema que esta dando é que quando eu passo o parametro da pesquisa, ai ele da um problema nessa linha

[code]Pessoa aux = (Pessoa)mapa.get(i);  [/code]

a mensagem que aparece é:ClassCastException: Java.lang.String cannot be cast to java.lang.Interger(in java.lang.Integer), essa é a mensagem de erro que aparece.

espero que vocês possam me ajudar.

Oi,

O objeto que você adicionou no MAP não é do tipo Pessoa.

Tchauzin!

obrigado lina

Olha não deu para entender nada do código que você passou, não sei o que você está querendo fazer. Imagino que você queira fazer uma pesquisa num conjunto de pessoas e retornar as que estão numa determinada faixa de idade, só que nesse caso normalmente se retorna uma parte ou um novo conjunto como resposta e você está incluindo novos itens no mesmo mapa em que pesquisa!?

[quote=lina]Oi,

O objeto que você adicionou no MAP não é do tipo Pessoa.

Tchauzin![/quote]

Ele não colocou o código completo aqui, o problema é que ele tem um TreeMap que é esse “mapa” que é do tipo String, e no laço ele está tentando pegar o objeto passando um valor inteiro no caso mapa.get(i)…

e ele tbm já replicou o tópico, nesse caso axo melhor ele postar todo o código para que possamos ajuda-lo.

obrigado mrrbigu

[code]import java.util.*;
import java.text.SimpleDateFormat;

public class Agenda{

//private ArrayList pessoas;

private Map mapa;

public Agenda(){
    mapa = new TreeMap<String, Integer>();
    //pessoas = new ArrayList<Pessoa>();         
}

//procurar telefone na lista 
public String procurarTelefone(String nome){
      if (nome == null)
         return null;

      if(mapa.size() == 0){
            return null;
        }
    for (int k=0; k<mapa.size(); k++){
        Pessoa atual = (Pessoa)mapa.get(k);
        if (nome.equalsIgnoreCase(atual.getNome())){
            return atual.getTelefone();
        }
    }
    return null;
  
}


//adiciona uma pessoa na agenda    
public void adicionarPessoa (Pessoa p){
    mapa.put(p.getNome(),p);
}


public Pessoa pesPorNome(String nome){
    return (Pessoa)mapa.get(nome);
}

//exibe uma faixa etaria de idade que o usuário determinar 

public Map pesquisaPorIdade(int idadeMin, int idadeMax){
if(mapa.size() == 0){
return null;
}
if (idadeMin <= 0 && idadeMax<=0)
return null;

    if(idadeMin >= idadeMax){
        return null;
    }            
    for(int i = 0; i < mapa.size(); i++){
        Pessoa aux = (Pessoa)mapa.get(i);
        if(idadeMin <= aux.getIdade() && idadeMax >= aux.getIdade()){
            mapa.put(aux.getIdade(),aux);
        }else{}
    }
return mapa;
}
[/code]

olha ai o codigo todinho

NÃO DUPLIQUE TÓPICOS.

Por causa disso existem respostas aqui e lá, agora, continue no seu outro tópico.

http://guj.com.br/posts/list/226280.java

Tópico trancado.