2011-07-10 12 views
0

ArrayDequeにオブジェクトを無作為に追加しようとしています。私は私の顧客数をプリントアウトするとこれは私がランダムな間隔でArrayDequeにオブジェクトを追加する

for (int i = 0; i <= 100; i ++) {   
     if (window.isEmpty()) { 
      Customer customer = new Customer(r.nextInt(10)+1); 
      q.add(customer); 
      window.beginService(); 
     } 
     else { 
      Customer customer = new Customer(r.nextInt(10)+1); 
      q.add(customer); 
      window.beginService(); 
      totalCustomers++; 
      totalServiceTime += window.serviceTime; 
      totalWaitTime += customer.getArrivalTime(); 
     } 
    } 

を持っているものを使用している他の方法は、それが顧客をランダムに追加されるべきでない、私の時計時間に等しい

public boolean isEmpty() { 
    if (serviceTime == 0) { 
     return true; 
    } 
    else 
    return false; 
} 

public void beginService() { 
    if (isEmpty()) { 
     serviceTime = r.nextInt(10)+1; 
    } 
    else 
     serviceTime += r.nextInt(10)+1; 
} 

public Customer(int arrivalTime) { 
    this.arrivalTime = arrivalTime; 
} 

public int getArrivalTime() { 
    return arrivalTime; 
} 

ですされています1-10の間隔。何か案は?

答えて

0

"時計時刻"をiの値として定義していますか?もしそうなら、私はあなたがそれを期待する理由とtotalCustomersが異なると確信していません。

forループでは、ウィンドウが空であるかどうかにかかわらず顧客を追加します。最初の回の後では、常に開始サービスであるため、常にserviceTimeで、が1より大きくなるため、ウィンドウは空になりません。1

ループの最初の反復の後で、ifのelseブランチが排他的に実行され、totalCustomersは常にiと一緒に増加します。

私はあなたのコードに大きな論理的なギャップがあると思いますが、質問の枠組みやコードの表示方法はあまり明確ではありません。 serviceTimeがどのように宣言されているのか、コードが何をしているのかは不明です。アイテムをキューから取り出したことはありません。これ以上の助けが必要な場合は、あなたの質問にもっと力を入れる必要があります。

+0

は実際にそれを理解した、他の誰かが同様の質問をして私を解決するのを助けた。一石付きの2羽の鳥http://stackoverflow.com/questions/6639243/java-add-items-to-arraylist-at-random-time-intervals/6643169#6643169 – fernan

関連する問題