Ich versuche, ein Scheduling-Programm zu machen, wo keine zwei Gespräche zur gleichen Zeit ablaufen können, obwohl ein Gespräch fortfahren kann, wie das andere endet. Nachdem ich das erste Gespräch in den Scheduler-Plan gelegt habe, möchte ich jeden Vortrag in meiner Array-Liste durchgehen und prüfen, ob es mit dem letzten Gespräch im Zeitplan kompatibel ist.Sortieralgorithmus mit arrayLists
I Abbildung kann ich überprüfen, indem Sie vergleichen, ob die Startzeit von Index i größer als die Endzeit von Index i-1 ist.
Ich sortiert meine Vorträge und Vorträge von dort EndTime und gab das erste Array ein. Jetzt habe ich Probleme, die Ereignisse zu vergleichen und die richtigen in den Scheduler-Plan einzufügen.
public class Scheduler {
private ArrayList<Event> events = new ArrayList <Event>();
public Scheduler(ArrayList<Event> events){ //Constructor
for (int i=0; i<events.size(); i++)
this.events.add(events.get(i));
}
public ArrayList<Event> getsortSchedule(){ //Sorting Algorithm
int N = events.size() -1;
for (int i = 0; i <=(N-1); i++)
{
for(int j = 1; j <= N;j++)
{
if(events.get(i).getendTime().compareTo(events.get(j).getendTime()) > 0)
Collections.swap(events, i, j);
}
}
return events;
}
public Scheduler getSchedule(){ //Scheduling attempt
Scheduler plan = new Scheduler(events);
this.events.add(events.get(0));
for (int i=0; i == events.size(); i++)
{
//if(events.get(i).getStartTime() > events.get(i).getendTime())
//if(events.get(i).getStartTime().compareTo(events.get(l).getendTime()) > events.get(i-1).getendTime().compareTo(events.get(l).getendTime()))
this.events.add(events.get(i));
}
return plan;
}
Was meinst du mit ** die Ereignisse vergleichen **? Sie vergleichen bereits mit dem Ereignis 'endtime' richtig (aber nicht mit' sammlung' 'sort' Methode)? – developer