Liebe Java-Forum-User
Ich habe folgendes Problem:
Ich habe die Klasse: Baustelle, diese wird in der Klasse: Baulos als Listenobject verwendet
Ich soll 2 Sortiermethoden schreiben, die nach der Methode kosten() in Baustelle sortieren,
sowie eine Sortiermethode die dannach sortieren soll, wielange die Baustelle noch benötigt um
fertigt gestellt zu werden. Hierbei nutze ich den GreogorianCalender in Baustelle als "endeDatum"
---> Sortieren nach endeDatum - heute (GregorianCalender) // heute = Parameter der Sortiermethode und gibt an von welchen Datum ausgegangen werden soll!
Die erste Sortieraufgabe habe ich folgendermaßen gelöst:
In Baulos:
Das funktioniert auch ganz gut, doch bei der 2. SortierMethode funktioniert dieser Lösungsweg nicht:
Wie man sieht wollte ich ein Attribut hinzufügen, welches ich in Baulos dann verwenden muss, dies geht jedoch nicht, da es nur 2 compare Methoden in comparator gibt und diese unterstützen meinen Parameter nicht.
In Baulos:
Ich würde mich über einen Lösungsvorschlag freuen, da ich wirklich nicht mehr weiter weiß und Hilfe benötige.
MFG Oli
Ich habe folgendes Problem:
Ich habe die Klasse: Baustelle, diese wird in der Klasse: Baulos als Listenobject verwendet
Ich soll 2 Sortiermethoden schreiben, die nach der Methode kosten() in Baustelle sortieren,
sowie eine Sortiermethode die dannach sortieren soll, wielange die Baustelle noch benötigt um
fertigt gestellt zu werden. Hierbei nutze ich den GreogorianCalender in Baustelle als "endeDatum"
---> Sortieren nach endeDatum - heute (GregorianCalender) // heute = Parameter der Sortiermethode und gibt an von welchen Datum ausgegangen werden soll!
Die erste Sortieraufgabe habe ich folgendermaßen gelöst:
Java:
import java.util.Comparator;
public class compareBaustelle implements Comparator<Baustelle>
{
public int compare(Baustelle a, Baustelle b)
{
if(a.kosten() > b.kosten())
{
return 1;
}
if(a.kosten() < b.kosten())
{
return -1;
}
return 0;
}
}
In Baulos:
Java:
public void listeKosten()
{
Comparator<Baustelle> comparator = new compareBaustelle();
java.util.Collections.sort(bList, comparator);
}
Das funktioniert auch ganz gut, doch bei der 2. SortierMethode funktioniert dieser Lösungsweg nicht:
Java:
import java.util.GregorianCalendar;
public class compareBau
{
public int compare(Baustelle a, Baustelle b, GregorianCalendar heute)
{
GregorianCalendar a1 = new GregorianCalendar(a.getEndeDatum().get(java.util.Calendar.YEAR) - heute.get(java.util.Calendar.YEAR),a.getEndeDatum().get(java.util.Calendar.MONTH)- heute.get(java.util.Calendar.MONTH), a.getEndeDatum().get(java.util.Calendar.DATE)- heute.get(java.util.Calendar.DATE));
GregorianCalendar b1 = new GregorianCalendar(b.getEndeDatum().get(java.util.Calendar.YEAR) - heute.get(java.util.Calendar.YEAR),b.getEndeDatum().get(java.util.Calendar.MONTH)- heute.get(java.util.Calendar.MONTH), b.getEndeDatum().get(java.util.Calendar.DATE)- heute.get(java.util.Calendar.DATE));
if(a1.after(b1) == true)
{
return 1;
}
if(a1.before(b1) == true)
{
return -1;
}
return 0;
}
}
In Baulos:
Java:
public void listeDauer(GregorianCalendar heute)
{
Comparator<Baustelle> comparator = new compareBau();
java.util.Collections.sort(bList, comparator);
}
Ich würde mich über einen Lösungsvorschlag freuen, da ich wirklich nicht mehr weiter weiß und Hilfe benötige.
MFG Oli