我正从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--;
}
}
答案 0 :(得分:0)
首先,使用foreach语句,它们在眼睛上更容易
for(Employee emp : employee)
另一种更快的方法是使用地图来存储数据。所以你只需要遍历一个列表。
Map<String,Employee> employees;
for(Employer emp : employer){
if(employees.get(emp.getEmpChoice()).getCompChoice() == 1){
//do stuff
}
}
根据您使用的Map
的实施情况,这可能会加快您的流程。您的代码也更简洁。