1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

optimize job removal

This commit is contained in:
oblonski 2015-09-28 09:51:34 +02:00
parent e25b61cac4
commit e1aa0a20ce

View file

@ -17,6 +17,7 @@
package jsprit.core.problem.solution.route.activity; package jsprit.core.problem.solution.route.activity;
import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Job;
import jsprit.core.problem.job.Service;
import jsprit.core.problem.solution.route.activity.TourActivity.JobActivity; import jsprit.core.problem.solution.route.activity.TourActivity.JobActivity;
import java.util.*; import java.util.*;
@ -127,12 +128,17 @@ public class TourActivities {
jobRemoved = jobs.remove(job); jobRemoved = jobs.remove(job);
} }
boolean activityRemoved = false; boolean activityRemoved = false;
List<TourActivity> acts = new ArrayList<TourActivity>(tourActivities); Iterator<TourActivity> iterator = tourActivities.iterator();
for (TourActivity c : acts) { while(iterator.hasNext()){
TourActivity c = iterator.next();
if (c instanceof JobActivity) { if (c instanceof JobActivity) {
if (job.equals(((JobActivity) c).getJob())) { Job underlyingJob = ((JobActivity) c).getJob();
tourActivities.remove(c); if (job.equals(underlyingJob)) {
iterator.remove();
activityRemoved = true; activityRemoved = true;
if(underlyingJob instanceof Service){
break;
}
} }
} }
} }