0

我正在从 2 个数组列表中检索元素并循环和比较它们。有没有更好的方法来循环这个?它有点慢,似乎效率不高

       String Name = employee.get(0).getEmpName();
       for(int i = 0; i < employee.size(); i++)
       {
           if (Name.equals(employee.get(i).getEmpName()))
           {
               for (int j = 0; j < employer.size(); j++)
               {
                   if (Name.equals(employer.get(i).getEmpChoice()) &&           (employers.get(j).getCompChoice() == 1))
                   {
                       if (!Test.contains(Name) ||  
                           !Test.contains(employers.get(j).getCompName()))
                       {
                            Test += Name + employers.get(j).getCompName() + "\n";
                       }
                   }
               }
           }
           else
           {
               Name = employees.get(i).getEmpName();
               i--;
           }
       }
4

1 回答 1

0

首先,使用 foreach 语句,它们更容易看

for(Employee emp : employee)

还有一种更快的方法是使用地图来存储数据。所以你只需要遍历一个列表。

Map<String,Employee> employees;
for(Employer emp : employer){
    if(employees.get(emp.getEmpChoice()).getCompChoice() == 1){
        //do stuff
    }
}

根据Map您使用的实施方式,这可能会加快您的流程。您的代码也更简洁。

于 2013-02-14T14:46:13.307 回答