Java добавление объектов в ArrayDeque через случайные интервалы - PullRequest
0 голосов
/ 10 июля 2011

Попытка добавить объекты в 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.Есть идеи?

1 Ответ

0 голосов
/ 10 июля 2011

Определяете ли вы свое "время часов" как значение i? Если это так, я не уверен, почему вы ожидаете, что totalCustomers будет другим.

В цикле for вы добавляете клиента независимо от того, пустые окна или нет. После первого раза окно никогда не будет пустым, поскольку вы всегда начинающий сервис, который всегда увеличивает serviceTime на как минимум на 1 .

Таким образом, после первой итерации цикла будет выполняться только ветвь else вашего if, и totalCustomers всегда будет увеличиваться вместе с i.

Я думаю, у вас больше логических пробелов в вашем коде, но вы не очень ясно поняли, как вы сформулировали свой вопрос или показали код. Неясно, как объявляется serviceTime или что должен делать код. Кажется, вы никогда не убираете предмет из очереди. Если вам требуется больше помощи, чем эта, вам нужно приложить больше усилий к вашему вопросу.

...