如何在foreach循环java中返回具有特定字段最小值的对象(函数?)

bbowesbo:

我试图从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值,而是希望返回整个雇员对象,因此可以在其上调用一个单独的函数,例如:

员工(已分配合同的价值最小).assignContract-将新合同分配给当前分配合同数量最少的雇员。因此,基本上,我该如何让每个人返回雇员而不是分配合同的int值?

任何帮助将不胜感激。

问候,乙


当所有三个提交的答案都有效时,我该怎么办?谢谢。另外,如果2+的最小值相同,那么我该如何随机返回一名雇员,例如,2名雇员都分配了0个合同。

尼古拉斯K:

您可以使用一个简单的for循环来查找合同数量最少的员工,如下所示:

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();
    }
}

现在,您具有最小合同的雇员对象的引用:

System.out.println(empMin);

如果您使用的是Java-8,则只需执行以下操作:

Employee empMin = Arrays.stream(employees)
                        .min((e1, e2) -> 
                                  e1.getNumberOfCurrentlyAssignedContracts() - 
                                  e2.getNumberOfCurrentlyAssignedContracts())
                        .get();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取orderedDict中具有最小值的对象?

Java8:从列表中对象的特定字段中选择最小值

如何搜索具有最小值的对象?

如何在 Django 模板中的字段中获取具有特定值的所有对象的计数?

如何在VBA中找到具有最小值的行的最小值

如何在组(SQL)中查找具有最小值和最大值的记录?

如何在Java流集合中查找BigDecimal字段的最小值?

如何在Pandas DataFrame中获得带有特定列的最小值的行?

如何在完成的函数中返回对象,而该函数期望在打字稿中具有返回值?

python字典具有一个键的多个属性。如何在这些属性之一中找到最小值并返回键?

如何从具有自定义类对象的NSArray中查找最小值和最大值?

如果1个以上实例具有相同(最小)值,如何从确定最小值的循环中随机选择一个对象?

如何在Java中检索Selenium WebElement的最小值?

无法弄清楚如何使循环代码具有最小值和最大值

返回具有重复值的哈希的最小值

如何在内部具有多个异步函数的foreach循环中返回数据

如何在符合特定条件的数据框中找到最小值并返回特定列

在具有返回值的數組中查找最小值

EXCEL相邻单元格中具有特定值的最小值

如何在 df 中创建一个新列,在所选列之间具有最小值?

使用Linq返回具有最小值的行

从联接表形成的行中返回字段的最小值

如何在java中找到最大值和最小值?(使用循环和if else)

从具有最小值的javascript对象获取密钥

从对象的ArrayList获取具有最小值的属性

按y列分组并返回x列中具有最小值的列

在打字稿中查找具有键的最小值的对象

如何通过弹性搜索中的特定值查找具有多个字段的内部对象的对象

Pandas GroupBy并选择特定列中具有最小值的行