From efc6109fa363997104e19a2cde253b97ff08eb6a Mon Sep 17 00:00:00 2001 From: Michal Maciejewski Date: Thu, 9 May 2019 10:42:09 +0200 Subject: [PATCH] speed up TourActivities.removeActivity() --- .../solution/route/activity/TourActivities.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/solution/route/activity/TourActivities.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/solution/route/activity/TourActivities.java index 9730de76..fad9d186 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/solution/route/activity/TourActivities.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/solution/route/activity/TourActivities.java @@ -164,10 +164,20 @@ public class TourActivities { for (TourActivity act : acts) { if (act == activity) { tourActivities.remove(act); + if (job == null || jobIsAlsoAssociateToOtherActs) { + // this is not a job activity OR other activities also refer to job --> do not remove job + // thus no need to iterate any further + return true; + } actRemoved = true; } else { - if (act instanceof JobActivity && job != null) { + if (job != null && act instanceof JobActivity) { if (((JobActivity) act).getJob().equals(job)) { + if (actRemoved) { + // other activities also refer to job --> do not remove job + // thus no need to iterate any further + return true; + } jobIsAlsoAssociateToOtherActs = true; } }