private void honorUserSchedules() { Set<String> toRemove = new HashSet<String>(); List<Work> unscheduled = new ArrayList<Work>(); for (Work work : works) { DriverContext driver = fetchDriver(work.getDriver()); if (driver == null) { unscheduled.add(work); continue; } toRemove.add(driver.getName()); schedules.addSchedule(createSchedule(work, driver)); } for (String driver : toRemove) drivers.remove(driver); works = unscheduled; }