Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleComparator
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
languagejava
titleUsing Comparator in ArrayList
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]
		*/
 
}

...