...
Code Block | ||||
---|---|---|---|---|
| ||||
public class MedalComparator implements Comparator<OlympicCountry> { //spesifiser hvilken klasse som skal sammenlignes som vanlig private boolean descending; // laget en custom constructorkonstruktør hvor du kan bestemme om du vil rangere stigende eller synkende public MedalComparerMedalComparator(boolean descending) { this.descending = descending; } // her sammenlignes to instanser med hverandre @Override public int compare(OlympicCountry o1, OlympicCountry o2) { OlympicCountry a = (descending ? o2 : o1); OlympicCountry b = (descending ? o1 : o2); // denne delen er helt lik som compareTo() metoden, a tilsvarer "this" og b tilsvarer "other" if (a.getGoldMedals() != b.getGoldMedals()) return a.getGoldMedals() - b.getGoldMedals(); else if (a.getSilverMedals() != b.getSilverMedals()) return a.getSilverMedals() - b.getSilverMedals(); else return a.getBronzeMedals() - b.getBronzeMedals(); } } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
public static void main(String[] args) { List<OlympicCountry> countries = new ArrayList<OlympicCountry>(Arrays.asList( new OlympicCountry("Norway", 5, 3, 7), new OlympicCountry("Sweden", 2, 9, 3), new OlympicCountry("Finland", 9, 2, 1), new OlympicCountry("Russia", 2, 9, 12), new OlympicCountry("Denmark", 7, 1, 6), new OlympicCountry("England", 5, 2, 10), new OlympicCountry("Canada", 5, 0, 4), new OlympicCountry("USA", 9, 2, 2) )); Collections.sort(countries, new MedalComparerMedalComparator(true)); System.out.println(countries); /* Her printes det nå: [USA: 9-2-2, Finland: 9-2-1, Denmark: 7-1-6, Norway: 5-3-7, England: 5-2-10, Canada: 5-0-4, Russia: 2-9-12, Sweden: 2-9-3] */ } |
...