- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 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。然后我的代码分配一些契约(Contract),分配的契约(Contract)数量增加等。然后我像这样从上面的员工中创建一个数组;
Employee[] employees = new Employee[] {Employee1, Employee2, Employee3, Employee4, Employee5};
我可以使用下面的循环打印分配给每个员工的契约(Contract)数量;
for (Employee employee : employees) {
System.out.println(employee.numberOfCurrentlyAssignedContracts);
}
我试图返回具有最少数量的 employee.numberOfCurrentlyAssignedContracts 的员工,而不是返回它的 int 值,我希望返回整个员工对象,这样我就可以调用一个单独的函数,例如:
employee(with smallest value of assigned contracts).assignContract - 将新契约(Contract)分配给当前分配契约(Contract)数量最少的员工。所以基本上,我如何让 for-each 返回员工而不是分配契约(Contract)的 int 值?
如有任何帮助,我们将不胜感激。
问候,B
如果提交的三个答案都有效,我该怎么办?!谢谢。此外,如果 2+ 具有相同的最小值,我怎么能随机返回一名员工,例如,2 名员工都是 0 分配的契约(Contract)..
最佳答案
您可以使用简单的 for 循环来查找契约(Contract)数量最少的员工,如下所示:
int minContract = Integer.MAX_VALUE;
Employee empMin = null;
for (Employee employee : employees) {
if (employee.getNumberOfCurrentlyAssignedContracts() < minContract) {
// swap min and employee if true
empMin = employee;
minContract = empMin.getNumberOfCurrentlyAssignedContracts();
}
}
现在您有对具有最低契约(Contract)的雇员对象的引用:
System.out.println(empMin);
如果您使用的是 java-8,那么您可以简单地执行以下操作:
Employee empMin = Arrays.stream(employees)
.min((e1, e2) ->
e1.getNumberOfCurrentlyAssignedContracts() -
e2.getNumberOfCurrentlyAssignedContracts())
.get();
关于java - 如何在foreach循环java中返回具有特定字段(函数?)最小值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55107643/
我是一名优秀的程序员,十分优秀!