Voces estão fazendo uma senhora confusão.

Se você quer comparar, digamos, duas instâncias de Aluno pela idade, então o
compare() de um Comparator seria:
    public int compare(Aluno a1, Aluno a2){


2008/10/16 Peter <[EMAIL PROTECTED]>

>  BTW, qual é o erro que dá, afinal, que até agora vc não nos disse?!
>
> Abraço!
>
>  Peter P. Lupo
> Undergraduating in Computer Science DCC/UFRJ
> Sun Certified Java Associatehttp://pplupo.googlepages.com/
> Cell. +55 (21) 81742487
>
>
>
> Igor Ramos wrote:
>
> Por que não enviar para a lista? É algum segredo ou algo do tipo?
> É um fato, no mínimo, curioso funcionar com double e não funcionar com int
> ou usando new Integer, se virmos o código também poderemos ver o que está
> errado e também aprenderemos, tendo mais chances de não acontecer o mesmo
> problema quando programarmos.
> Se fosse uma lista, algum trabalho que valesse pontos eu até entenderia,
> mas não vejo motivo para esconder de nós o motivo dessa situação inusitada.
>
> [ ]s
>
> Igor Ramos
>
> 2008/10/16 Peter <[EMAIL PROTECTED]>
>
>>  Me mande o código (privado, não mande pra lista) pra eu ver, por favor.
>>
>> Abraço!
>>
>>   Peter P. Lupo
>> Undergraduating in Computer Science DCC/UFRJ
>> Sun Certified Java Associatehttp://pplupo.googlepages.com/
>> Cell. +55 (21) 81742487
>>
>>
>>
>> Jorge Ricardo Jau Junior wrote:
>>
>> Curioso... Só funcionou com double... usando new Integer dá o mesmo erro.
>>
>> 2008/10/15 Jorge Ricardo Jau Junior <[EMAIL PROTECTED]>
>>
>>> Ok, vou testar.
>>>
>>> 2008/10/15 Peter <[EMAIL PROTECTED]>
>>>
>>>> Cara, seguinte...
>>>>
>>>> se getAno retorna int, enxergue a expressão "a1.getAno()" como um int.
>>>>
>>>> Assim, o que vc está fazendo é:
>>>>
>>>> int1.compareTo(int2);
>>>>
>>>> como int é tipo primitivo, não tem compareTo.
>>>>
>>>> A solução que eu sugeri foi:
>>>>  new Integer(int1).compareTo(new Integer(int2));
>>>>
>>>> ou seja,
>>>>
>>>> new Integer(a1.getAno()).compareTo(new Integer(a2.getAno()));
>>>>
>>>> Abraço!
>>>>
>>>>  Peter P. Lupo
>>>> Undergraduating in Computer Science DCC/UFRJ
>>>> Sun Certified Java Associatehttp://pplupo.googlepages.com/
>>>> Cell. +55 (21) 81742487
>>>>
>>>>
>>>>
>>>>  Jorge Ricardo Jau Junior wrote:
>>>>
>>>> Nossa...
>>>> Na verdade, estou querendo fazer uma classe que implemente Comparator,
>>>> daí ela precisa do método compare() reescrito.
>>>> O problema é quando declaro que comparo os atributos primitivos.
>>>> Por exemplo: minha classe compara os anos em instâncias de alunos, por
>>>> exemplo.
>>>> Se uso:
>>>>
>>>>            a1.getAno().compareTo(a2.getAno());
>>>>
>>>> e ano for um int ou double o eclipse chia.
>>>>
>>>> Espero não estar repetindo dúvidas anteriores.
>>>>
>>>> Saudações.
>>>>
>>>> 2008/10/14 Peter <[EMAIL PROTECTED]>
>>>>
>>>>> Pode. Mas não é óbvio para quem lê. Eu faria "return new
>>>>> Integer(int1).compareTo(new Integer(int2));"
>>>>>
>>>>> Abraço!
>>>>>
>>>>>  Peter P. Lupo
>>>>> Undergraduating in Computer Science DCC/UFRJ
>>>>> Sun Certified Java Associatehttp://pplupo.googlepages.com/
>>>>> Cell. +55 (21) 81742487
>>>>>
>>>>>
>>>>>
>>>>>  Gabriel Pires wrote:
>>>>>
>>>>> Não poderia usar int1-int2 ? =P
>>>>>
>>>>> 2008/10/14 Peter <[EMAIL PROTECTED]>
>>>>>
>>>>>> Pelo que entendi, o problema é que o método não recebe como parâmetro
>>>>>> tipos primitivos, apenas classes.
>>>>>> Lembre-se que o compareTo só serve para dizer como comparar instâncias
>>>>>> da classe que se está codificando, logo não faz sentido receber um tipo
>>>>>> primitivo, já que vc não está codificando um tipo primitivo, e sim uma
>>>>>> classe.
>>>>>> Outra coisa que vale lembrar é que coleções só aceitam instâncias, não
>>>>>> aceitam tipos primitivos. E as subclasses  de Number (Double, Integer, 
>>>>>> etc)
>>>>>> já implementam Comparable.
>>>>>>
>>>>>> Se vc fizer:
>>>>>>
>>>>>> Collection<Integer> c = new TreeSet<Integer>();
>>>>>> c.add(1);
>>>>>>
>>>>>> o compilador vai entender
>>>>>>
>>>>>> Collection<Integer> c = new TreeSet<Integer>();
>>>>>> c.add(new Integer(1));
>>>>>>
>>>>>> O nome deste recurso é autoboxing. E a ordenação estará garantida.
>>>>>>
>>>>>>
>>>>>> Abraço!
>>>>>>
>>>>>> P.S.: Buss, no compareTo vc não pode usar int1>=int 2 pq se for maior
>>>>>> vc deve retornar um valor diferente de 0 e se for igual vc deve retornar 
>>>>>> 0.
>>>>>> :¬þ então dificilmente vc vai usar o comparador >=. *rs*
>>>>>>
>>>>>>  Peter P. Lupo
>>>>>> Undergraduating in Computer Science DCC/UFRJ
>>>>>> Sun Certified Java Associatehttp://pplupo.googlepages.com/
>>>>>> Cell. +55 (21) 81742487
>>>>>>
>>>>>>
>>>>>>
>>>>>> Bruno Buss wrote:
>>>>>>
>>>>>> Juro que não entendi...
>>>>>>
>>>>>> Qual o problema em usar int1 == int2? int1 >= int2? etc...
>>>>>>
>>>>>> 2008/10/14 Jorge Ricardo Jau Junior <[EMAIL PROTECTED]>
>>>>>>
>>>>>>> O método compareTo() não faz comparações com tipos primitivos, int e
>>>>>>> double....
>>>>>>>
>>>>>>> Alguém sabe como resolver isso? Tipo, queria passar uma comparação de
>>>>>>> inteiros sem ter que ficar convertendo...
>>>>>>>
>>>>>>> Saudações!
>>>>>>>
>>>>>>> --
>>>>>>> "A verdadeira luta só começa quando achamos que não dá pra lutar
>>>>>>> mais."
>>>>>>>
>>>>>>> "Aquele que começou a boa obra em minha vida não terminou."
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Bruno C. Buss
>>>>>> http://magoobr.blogspot.com/
>>>>>> http://www.dcc.ufrj.br/~brunobuss/<http://www.dcc.ufrj.br/%7Ebrunobuss/>
>>>>>>
>>>>>> Aluno do DCC - UFRJ - www.dcc.ufrj.br
>>>>>>
>>>>>> if( ((*node)->valor) < (((*heap)[((*node)->gr)])->valor)) /* WTF?! */
>>>>>>
>>>>>> "Throughout your life, advance daily, becoming more skillful than
>>>>>> yesterday, more skillful than today. This is never-ending." - Hagakure
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> "A verdadeira luta só começa quando achamos que não dá pra lutar mais."
>>>>
>>>> "Aquele que começou a boa obra em minha vida não terminou."
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> "A verdadeira luta só começa quando achamos que não dá pra lutar mais."
>>>
>>> "Aquele que começou a boa obra em minha vida não terminou."
>>>
>>
>>
>>
>> --
>> "A verdadeira luta só começa quando achamos que não dá pra lutar mais."
>>
>> "Aquele que começou a boa obra em minha vida não terminou."
>>
>>
>>
>>
>>
>
>
> --
> Igor Ramos
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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