假设我有一个班级管理器,它存储了Employee类的Arraylist说:
class Manager {
ArrayList<Employee> x = new ArrayList<>();
}
现在可以通过Employee类中的某些方法获取Manager对象的名称吗?换句话说,使用element查找Arraylist的名称。
答案 0 :(得分:0)
如果要从员工对象中获取经理对象,则必须实现双向映射。 在员工类中也添加经理属性。
答案 1 :(得分:0)
据我了解,问题是要找到给定员工的经理。为此,您需要所有经理的列表以及要搜索经理的员工的详细信息。
class Manager
{
private String name;
private List<Employee> employees;
public List<Employee> getEmployees()
{
return this.employees;
}
public String getName()
{
return this.name;
}
}
如果您正在使用Employee的现有对象(您从Manager对象的雇员列表中获取Employee对象),则可以使用以下方法。
class FunctionClass{
public static void main(String[] args)
{
List<Manager> allManagers = getAllManagers();
Employee currEmployee = getCurrentEmployee();
for( Manager manager : allManagers )
{
if( manager.getEmployees().contains( currEmployee ) )
{
System.out.println( manager.getName() );
break;
}
}
}
}
如果从提供的数据创建Employee对象,则上述方法将不起作用。您将必须遍历每位经理的所有员工。
class FunctionClass{
public static void main(String[] args)
{
List<Manager> allManagers = getAllManagers();
Employee currEmployee = getCurrentEmployee();
for( Manager manager : allManagers )
{
for( Employee emp: manager.getEmployees() )
{
if( /*compare if emp and currEmployee equal*/ )
{
System.out.println( manager.getName() );
break;
}
}
}
}