Como vc fez?

Não é pra usar no if dentro do for, é pra usar em substituição ao for,
comparando os nomes diretamente e não seus caracteres.

Abraço


Peter P. Lupo
http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
 <http://sites.google.com/site/pplupo>MPS.BR Authorized Implementation
Practitioner<http://www.softex.br/mpsbr/_profissionais/MPS.BR_certificados_de_arovacao_prova_P2-MPS.BR.pdf>-
Certified
ScrumMaster <http://www.scrumalliance.org/pages/certified_scrummaster>
 <http://www.scrumalliance.org/pages/certified_scrummaster>Oracle Certified
Associate, Java SE 5/SE
6<http://in.sun.com/training/certification/java/scja.xml> -
Java Black Belt <http://www.blackbeltfactory.com/ui#!User/pplupo>
 <http://www.blackbeltfactory.com/ui#!User/pplupo>+55 (021) 81742487



2011/4/10 Lucian Sturião <[email protected]>

> É que eu estava usando o equalsIgnoreCase (dica de outra lista) e mesmo
> assim deu a Exception quando o nome do objeto era maior que o nome
> procurado.
>
> Em 10 de abril de 2011 11:43, Peter P. Lupo <[email protected]> escreveu:
>
> Depende. Se cada caractere for instância de Character, é um objeto. Se for
>> simplesmente um valor tipo char, é um tipo primitivo. Assim vc tb vai
>> encontrar Integer/int, Double/double, Float/float, Boolean/boolean, etc...
>> Neste caso aí, cada caractere é um char mesmo, eu acho. Me equivoquei no
>> primeiro exemplo.
>>
>> Sim, comparando os tamanhos vc se livra do problema mas vc tb pode
>> simplesmente usar equals ou equalsIgnoreCase de String para comparar os
>> nomes, sem ter que implementar o for vc mesmo.
>>
>> Assim fica mais claro o que vc está querendo fazer além de vc não perder
>> tempo fazendo algo com bugs que já existe feito e testado.
>>
>> Abraço
>>
>> Peter P. Lupo
>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
>>  <http://sites.google.com/site/pplupo>MPS.BR Authorized Implementation
>> Practitioner<http://www.softex.br/mpsbr/_profissionais/MPS.BR_certificados_de_arovacao_prova_P2-MPS.BR.pdf>-
>>  Certified
>> ScrumMaster <http://www.scrumalliance.org/pages/certified_scrummaster>
>>  <http://www.scrumalliance.org/pages/certified_scrummaster>Oracle
>> Certified Associate, Java SE 5/SE 
>> 6<http://in.sun.com/training/certification/java/scja.xml> -
>> Java Black Belt <http://www.blackbeltfactory.com/ui#!User/pplupo>
>>  <http://www.blackbeltfactory.com/ui#!User/pplupo>+55 (021) 81742487
>>
>>
>>
>> 2011/4/10 Lucian Sturião <[email protected]>
>>
>>> Cada caractere também é um objeto?
>>> Então será que usando já uma condição pra comparar o tamanho dos nomes
>>> logo no começo contornaria essa exceção?
>>>
>>> Em 10 de abril de 2011 11:00, Peter P. Lupo <[email protected]> escreveu:
>>>
>>> Sim, isto deve resolver, mas há diversas soluções:
>>>>
>>>>
>>>>  public boolean equalsNome (String nome) {
>>>>  for (int i = 0; i < this.nome.length(); i++) {
>>>> if (this.nome.charAt(i)*.equals(*nome.charAt(i))*)* return true;
>>>>  }
>>>>  return false;
>>>> }
>>>>
>>>> SEMPRE que você quiser saber se dois objetos são de valores iguais,
>>>> chame o equals. == ou != só serve para dizer se são o mesmo objeto (se 
>>>> estão
>>>> na mesma posição de memória) e não para dizer se são iguais (podem ser dois
>>>> objetos distintos, mas iguais em valor). Isso é matéria e pode cair em
>>>> prova. Se não entendeu com esta explicação de uma linha e meia, pergunte.
>>>>
>>>> Se você implementar a sugestão do Thiago, vc pode usar o contains no
>>>> lugar do seu método equalsNome:
>>>>
>>>> todasPessoas.contains(pessoa)
>>>> ou
>>>> todasPessoas.contains(new Pessoa(nome))
>>>>
>>>> e já saberá se existe ou não uma pessoa com aquele nome.
>>>>
>>>> Leia o Javadoc dos métodos equals e hashCode em Object. Se vc mudar um,
>>>> terá que mudar o outro. Se dois objetos forem iguais segundo o equals, eles
>>>> devem retornar o mesmo hashCode. Vc tb tem a opção de clicar com o botão
>>>> direito no código de Pessoa, ir no menu source e selecionar generate equals
>>>> and hashcode. O Eclipse faz pra vc. Mas não deixe de ler. É matéria e pode
>>>> cair em prova.
>>>>
>>>> Para saber se existe uma pessoa com aquele nome na coleção:
>>>>
>>>> public boolean equalsNome (String nome) {
>>>>   for (Pessoa p : todasPessoas) {
>>>>  if (p.getNome.equals(nome)) return true;
>>>> }
>>>>  return false;
>>>> }
>>>>
>>>> Em String há os métodos equals e equalsIgnoreCase para vc não ter que
>>>> fazer este for que vc fez.
>>>> E seu método tem outro problema. Sempre que this.nome for mais longo que
>>>> nome, vc vai ter uma exceção.
>>>>
>>>>
>>>> Abraço
>>>>
>>>>
>>>> Peter P. Lupo
>>>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo
>>>>  <http://sites.google.com/site/pplupo>MPS.BR Authorized Implementation
>>>> Practitioner<http://www.softex.br/mpsbr/_profissionais/MPS.BR_certificados_de_arovacao_prova_P2-MPS.BR.pdf>-
>>>>  Certified
>>>> ScrumMaster <http://www.scrumalliance.org/pages/certified_scrummaster>
>>>>  <http://www.scrumalliance.org/pages/certified_scrummaster>Oracle
>>>> Certified Associate, Java SE 5/SE 
>>>> 6<http://in.sun.com/training/certification/java/scja.xml> -
>>>> Java Black Belt <http://www.blackbeltfactory.com/ui#!User/pplupo>
>>>>  <http://www.blackbeltfactory.com/ui#!User/pplupo>+55 (021) 81742487
>>>>
>>>>
>>>>
>>>> 2011/4/10 Thiago Caldeira de Lima <[email protected]>
>>>>
>>>>> Vc pode usar  " ob.equals(ob2)  ", talvez precise fazer um override do
>>>>> método equals da classe Pessoa.
>>>>>
>>>>> public boolean equals(pessoa p){
>>>>>
>>>>> return this.nome.equals(p.nome);
>>>>> }
>>>>>
>>>>> isso deve resolver =]
>>>>>
>>>>> public boolean equals(Object obj) {
>>>>>
>>>>>
>>>>> 2011/4/10 Lucian Sturião <[email protected]>
>>>>>
>>>>>> Estou tentando fazer um programa de cadastro de pessoas em Java. No
>>>>>> meu programa cada pessoa teria: nome, reserva, pagamentos 1 2 e 3, e mais
>>>>>> alguns métodos/atributos.
>>>>>> Eu acho que consegui fazer uma Arraylist com esses objetos, não sei se
>>>>>> fiz certo:
>>>>>>
>>>>>> Declarei:
>>>>>>
>>>>>> ArrayList<Pessoa> todasPessoas = new ArrayList<Pessoa>();
>>>>>>
>>>>>> e depois quando adiciono a pessoa, faço:
>>>>>>
>>>>>> todasPessoas.add(new Pessoa("nome"));
>>>>>>
>>>>>> Quando quero procurar uma pessoa da arraylist, eu fiz um método que
>>>>>> usa um for e procura em todos objetos da arraylist pelo nome dado, 
>>>>>> usando o
>>>>>> método equalsNome (abaixo)... mas isso está me parecendo muito estranho, 
>>>>>> e
>>>>>> não está dando certo.
>>>>>> Fiz um método equalsNome na Classe Pessoa, pra receber um nome e dizer
>>>>>> se este é o nome da pessoa:
>>>>>>
>>>>>> public boolean equalsNome (String nome) {
>>>>>>  for (int i = 0; i < this.nome.length(); i++) {
>>>>>> if (this.nome.charAt(i) != nome.charAt(i)) return false;
>>>>>>  }
>>>>>>  return false;
>>>>>>  }
>>>>>>
>>>>>>
>>>>>> Alguém pode me ajudar? Procurei na Classe ArrayList na API e não
>>>>>> encontrei o que eu queria.
>>>>>> O que estou fazendo errado, e tem algum jeito de fazer isso mais
>>>>>> simples?
>>>>>>
>>>>>> Obrigado.
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Comp 2 - Geral" group.
>>>>>> To post to this group, send email to [email protected].
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected].
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>>>>
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Comp 2 - Geral" group.
>>>>> To post to this group, send email to [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected].
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Comp 2 - Geral" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google Groups
>>> "Comp 2 - Geral" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/comp2-geral?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Comp 2 - Geral" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/comp2-geral?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Comp 2 - Geral" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/comp2-geral?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en.

Responder a