如何访问另一个类的arraylist

时间:2018-08-18 15:29:23

标签: java class arraylist

假设我有一个班级管理器,它存储了Employee类的Arraylist说:

class Manager {

    ArrayList<Employee> x = new ArrayList<>();
}

现在可以通过Employee类中的某些方法获取Manager对象的名称吗?换句话说,使用element查找Arraylist的名称。

2 个答案:

答案 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;
                }
          }
       }
    }