Я написал программу на Java, состоящую из трех соответствующих классов; Сотрудник, Клиент и Контракт. В моем основном методе я создал массив различных экземпляров всех трех классов;
// Create Clients
Client Client1 = new Client(1, "Client 1", 0);
Client Client2 = new Client(2, "Client 2", 0);
// Create Array of Clients
Client[] clients = new Client[] {Client1, Client2};
// Create Contracts
Contract Contract1 = new Contract("Contract 1", 1, 850, 4, 0, 1, 0);
Contract Contract2 = new Contract("Contract 2", 2, 500, 4, 0, 1, 0);
Contract Contract3 = new Contract("Contract 3", 3, 1500, 3, 0, 1, 0);
// Create Array of Contracts
Contract[] contracts = new Contract[] {Contract1, Contract2, Contract3};
// Create Employees
Employee Employee1 = new Employee(1, "Bradley", 0);
Employee Employee2 = new Employee(2, "Patrick", 0);
Employee Employee3 = new Employee(3, "Erin", 0);
Employee Employee4 = new Employee(4, "Jim", 0);
Employee Employee5 = new Employee(5, "Fredrick", 0);
// Create Array of Employees
Employee[] employees = new Employee[] {Employee1, Employee2, Employee3, Employee4, Employee5};
У меня есть функция в Contract.Java с именем assignContractToEmployeeWithLeastContracts, которая принимает 2 аргумента, массив сотрудников и контракт. Функция:
// Assign contract to employee with least contracts
public void assignContractToEmployeeWithLeastContracts(Employee[] employees, Contract contract) {
// Assign to employee with minimum contracts
int minContract = Integer.MAX_VALUE;
Employee employeeWithMinContracts = null;
for (Employee employee : employees) {
if (employee.getCurrentlyAssignedContracts() < minContract) {
// swap min and employee if true
employeeWithMinContracts = employee;
minContract = employeeWithMinContracts.getCurrentlyAssignedContracts();
}
}
employeeWithMinContracts.assignContract(employeeWithMinContracts, contract);
}
Проблема, с которой я столкнулся, заключается в том, что мне нужно разобраться, что произойдет, если 2 сотрудника будут иметь одинаковое (минимальное) количество назначенных контрактов. Как я могу случайно выбрать одного из сотрудников, если это произойдет? Я попытался реализовать начальное число в цикле foreach, но продолжаю ломать все.
Любая помощь будет оценена,
Спасибо,
B