繁体   English   中英

如何访问另一个类的arraylist

[英]how to access arraylist of another class

假设我有一个存储类 Employee 的 Arraylist 的类管理器说:

class Manager {

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

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

如果您想从员工对象中获取经理对象,那么您必须实现双向映射。 在员工类中也添加经理属性。

据我了解,问题是找到给定员工的经理。 为此,您需要一份所有经理的列表以及您搜索经理的员工的详细信息。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM