2016-12-04 8 views
1

私はスケジューリングプログラムを作ろうとしていますが、2つの会話が同時に進行することはできません。最初の話をスケジューラプランに入れた後、私は自分のarrayList内の各トークを調べて、スケジュール内の最後の話と互換性があるかどうかを確認したい。arrayListsを使ったソートアルゴリズム

私は、インデックスiの開始時刻がインデックスi-1の終了時刻よりも大きいかどうかを比較することで確認できます。

endTimeで私の講演と講義をソートし、最初の配列を入力しました。今私はイベントを比較し、スケジューラプランに正しいものを追加するのに問題があります。

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; 
    } 
+0

をやってリストを並べ替えるいけない**イベントを比較する**?すでに 'endtime'イベントと比較しています(' collection'' sort'メソッドを使用していません)? – developer

答えて

0

あなたはのArrayListを使用している場合、あなたはコレクションを使用することができます...

は、車輪の再発明し、あなたが何を意味するん

Collections.sort(events); 
+0

@Xocęしかし、私はstartTimeとendTimeを比較して、 'Scheduler plan'に入れる前にイベントが同時に起こっていないことを確認してください。 – ProgrammingBeginner24

+0

私にヒントを許せば、短い答えがうまくいくことがあります。しかし、私はあなたが非常に頻繁にハーフ・レディ・ハーフ・ニアの答えをダンプすると思います。私はもう少し*品質*がより多くのアップホップを収集するのに役立つと思います... – GhostCat

関連する問題