在Java中使用递归逻辑来查找直接或间接向特定经理报告的经理列表,可以通过以下步骤实现:
以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class Employee {
private int id;
private String name;
private int managerId;
// 构造函数和getter/setter方法省略
public static List<Integer> findReportingManagers(int managerId, List<Employee> employees) {
List<Integer> result = new ArrayList<>();
for (Employee employee : employees) {
if (employee.getManagerId() == managerId) {
result.add(employee.getId());
result.addAll(findReportingManagers(employee.getId(), employees));
}
}
return result;
}
public static void main(String[] args) {
// 创建员工列表
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(1, "Alice", 3));
employees.add(new Employee(2, "Bob", 3));
employees.add(new Employee(3, "Charlie", 4));
employees.add(new Employee(4, "David", 5));
employees.add(new Employee(5, "Eve", 6));
employees.add(new Employee(6, "Frank", 7));
// 查找直接或间接向经理ID为4的经理报告的经理列表
List<Integer> reportingManagers = Employee.findReportingManagers(4, employees);
// 输出结果
System.out.println("Reporting Managers: " + reportingManagers);
}
}
在上述示例代码中,我们创建了一个Employee类来表示员工信息,包含id、name和managerId属性。通过调用findReportingManagers方法,传入特定经理ID和员工列表,即可获取直接或间接向该经理报告的经理列表。最后,我们在main方法中进行了一个简单的测试,并输出结果。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体情况进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云