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)

また、より高速な方法は、マップを使用してデータを保存することです。そのため、1 つのリストを反復処理するだけです。

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

使用している実装によってMapは、これによりプロセスが高速化される場合があります。また、コードはより簡潔です。

于 2013-02-14T14:46:13.307 に答える