oro2 Skrevet 25. oktober 2004 Del Skrevet 25. oktober 2004 (endret) Jeg er klar over at den sammenligner det første og det andre argumentet og returnerer en int... det jeg lurer på er: Da compare-metoden så vidt jeg har forstått IKKE er statisk, hvorfor må den da ha to referanser som argument? Jeg trodde den sammenlignet arumentet med det objektet den blir utført på. Når den ikke er statisk kunne jeg vel gjort slik hvis det var et argument? if (o1.compare(o2)<0) Der o1 og o2 er objekter av en klasse som er implementerer Comparator. Sånn som det er nå må jeg skrive: if (etellerannet.compare(o1, o2)<0) Og hva er dette "etellerannet"? Hilsen nybegynner i java edit: trykkleif nr 2++ Endret 25. oktober 2004 av oro2 Lenke til kommentar
MailMan13 Skrevet 25. oktober 2004 Del Skrevet 25. oktober 2004 (endret) En comparator sammenligner ikke argumentet mot comparator objektet, men argumentene mot hverandre, altså mer en "Pure Fabrication" eller 'convenience' klasse enn en verdi i seg selv. Metoden compare(Object o1, Object o2) returnerer noe større enn 1 hvis det første argumentet er 'størst', 0 hvis de er like og mindre enn null hvis det siste argumentet er størst. I koden du viser er "etellerannet" et objekt som implementerer Comparator, som vil si at denne klassen kan sammenligne objekter (altså at den har en compare metode). Hvis o2 er størst vil kallet returnere noe negativt og if setningen slår til. Edit: Hvis du vil sammenligne dem direkte må du implementere Comparable som har metoden compareTo(Object o) i klassen du vil sammenligne, denne virker på samme måten som compare metoden i Comparator objekter, men det første argumentet er implisitt Comparable objektet selv. Endret 25. oktober 2004 av MailMan13 Lenke til kommentar
oro2 Skrevet 25. oktober 2004 Forfatter Del Skrevet 25. oktober 2004 Tusen takk for utfyllende svar. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå