diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java | 32 | 
1 files changed, 18 insertions, 14 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java index d91c90a..396d62c 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/service/OperationServiceImpl.java @@ -15,6 +15,7 @@ import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;  import java.lang.invoke.MethodHandles;  import java.time.Instant;  import java.util.ArrayList; +import java.util.Comparator;  import java.util.EnumSet;  import java.util.HashSet;  import java.util.List; @@ -22,6 +23,7 @@ import java.util.Set;  import java.util.SortedSet;  import java.util.TreeSet;  import java.util.function.Predicate; +import java.util.function.Supplier;  import java.util.regex.Matcher;  import java.util.regex.Pattern;  import java.util.stream.Collectors; @@ -186,20 +188,22 @@ public class OperationServiceImpl implements OperationService {                  break;          } -        return vehicles.stream() -                .sorted( -                        (v1, v2) -> { -                            for (Predicate<Vehicle> priority : priorities) { -                                if (priority.test(v1)) { -                                    return -1; -                                } -                                if (priority.test(v2)) { -                                    return +1; -                                } -                            } -                            return 0; -                        }) -                .collect(Collectors.toCollection(TreeSet::new)); +        Comparator<Vehicle> vehicleComparator = +                (v1, v2) -> { +                    for (Predicate<Vehicle> priority : priorities) { +                        if (priority.test(v1)) { +                            return -1; +                        } +                        if (priority.test(v2)) { +                            return +1; +                        } +                    } +                    return 0; +                }; + +        Supplier<TreeSet<Vehicle>> supplier = () -> new TreeSet<>(vehicleComparator); + +        return vehicles.stream().collect(Collectors.toCollection(supplier));      }      @Override  | 
