【发布时间】:2019-03-11 17:50:46
【问题描述】:
我试图从 for-each 循环中获取对象“Employee”的最小值。
我创建了一些员工;
// 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);
第三个参数是分配的合约数量,默认为0。然后我的代码分配一些合同,分配的合同数量增加等。然后我像这样从上述员工中创建一个数组;
Employee[] employees = new Employee[] {Employee1, Employee2, Employee3, Employee4, Employee5};
我可以使用下面的循环打印分配给每个员工的合同数量;
for (Employee employee : employees) {
System.out.println(employee.numberOfCurrentlyAssignedContracts);
}
我正在尝试返回具有最少employee.numberOfCurrentlyAssignedContracts 数量的员工,但不是返回它的int 值,而是希望返回整个员工对象,以便我可以在其上调用一个单独的函数,例如:
employee(分配合同的价值最小).assignContract - 将新合同分配给当前分配合同数量最少的员工。所以基本上,我如何让 for-each 返回员工而不是分配合同的 int 值?
任何帮助将不胜感激。
问候, 乙
当所有三个提交的答案都有效时,我该怎么办?!谢谢。另外,如果 2+ 具有相同的最小值,我怎么能随机返回一个员工,例如,2 个员工都有 0 个分配的合同..
【问题讨论】:
标签: java algorithm oop for-loop foreach