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.
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!?
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.
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;