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