Uppgift 2.3 Use functions from two made comparators
Fastnat på en ny uppgift
Suttit och försökt bygga upp något resonemang här är min kod för de tidigare lösningarna som är godkända.
import java.util.Comparator;
public class DogTailComparator implements Comparator<Dog>{
public int compare(Dog first, Dog second) {
if(first.getTailLength() < second.getTailLength())
return -1;
if(first.getTailLength() > second.getTailLength())
return 1;
return 0;
//comparator ligger i java.util så därav importeras.
import java.util.Comparator;
public class DogNameComparator implements Comparator<Dog>{
public int compare(Dog first, Dog second) {
return first.getName().compareTo(second.getName());
}
}
Nu skall jag kombinera dessa två comparators och skapa en ny DogTailNameComparator och utnyttja des funktionalitet enligt instruktionerna
Min första fundering är om jag skall göra en ny comparator eller implementera DogTailNameComparator misstänker Comparator då det står i namnet. Och fått lite poäng på testning så det borde vara det.
Min andra fundering är lite hur jag skall resonera jag tänker mig någon form av if sats som först kollar svanslängder mellan tex två hundar och retunerar den minsta svanslängden för det är ett kriterium för att hamna först i listan.
Sen bör man även kolla av scenarion där svanslängden är lika och i sin tur då jämföra jämföra bokstavsordning det är så då kanske man behöver någon metod som läser av första elementet av dog när det kommer till namn.
Det står att vi först skall förstå listor kommande uppgift så antar att det inte är någon ArrayList som skall användas.
Det här det jag har skrivit vad jag skall retunera eller om det skall va if satser är jag osäker på.
import java.util.Comparator;
public class DogTailNameComparator implements Comparator<Dog>{
public int compare(Dog first, Dog second) {
if(first.getTailLength() < second.getTailLength())
return
}
}
Tack!
Kortfattat blir uppgiften:
Jämför svanslängder. Om detta inte blir oavgjort, returnera -1 eller 1 beroende på vilken som vann. Om det blir oavgjort, returnera resultatet av deras namnjämförelse.
Kan du översätta detta till kod?
Japp lyckades hade -1 på return på första och 1 på andra men ändrade det hur var det nu igen varför skall jag retunera 1 om den första vann och -1 om den andra vann?
import java.util.Comparator;
public class DogTailNameComparator implements Comparator<Dog>{
public int compare(Dog first, Dog second) {
if(first.getTailLength() < second.getTailLength())
return -1;
if(first.getTailLength() > second.getTailLength())
return 1;
return first.getName().compareTo(second.getName());
}
}