diff --git a/src/main/java/ru/erius/lab5/commandline/PeopleDatabaseCommands.java b/src/main/java/ru/erius/lab5/commandline/PeopleDatabaseCommands.java index 4bf9781..5010a60 100644 --- a/src/main/java/ru/erius/lab5/commandline/PeopleDatabaseCommands.java +++ b/src/main/java/ru/erius/lab5/commandline/PeopleDatabaseCommands.java @@ -143,7 +143,7 @@ public final class PeopleDatabaseCommands { public static void sumOfHeight(PeopleDatabase peopleDatabase) { int sum = peopleDatabase.getCollection() .stream() - .mapToInt(Person::getHeight) + .mapToInt(p -> p.getHeight() == null ? 0 : p.getHeight()) .sum(); System.out.println("Сумма ростов всех людей в коллекции - " + sum); } diff --git a/src/main/java/ru/erius/lab5/data/Location.java b/src/main/java/ru/erius/lab5/data/Location.java index f1cc35b..b08ab9d 100644 --- a/src/main/java/ru/erius/lab5/data/Location.java +++ b/src/main/java/ru/erius/lab5/data/Location.java @@ -73,7 +73,7 @@ public class Location implements Comparable { */ @Override public int compareTo(Location other) { - return Comparator.comparing(Location::getName) + return Comparator.comparing(Location::getName, Comparator.nullsFirst(String::compareTo)) .thenComparing(Location::distance) .compare(this, other); } diff --git a/src/main/java/ru/erius/lab5/data/Person.java b/src/main/java/ru/erius/lab5/data/Person.java index 29c8bdd..8f4f392 100644 --- a/src/main/java/ru/erius/lab5/data/Person.java +++ b/src/main/java/ru/erius/lab5/data/Person.java @@ -174,8 +174,8 @@ public class Person implements Comparable { @Override public int compareTo(Person other) { return Comparator.comparing(Person::getName) - .thenComparing(Person::getPassportID) - .thenComparing(Person::getHeight) + .thenComparing(Person::getPassportID, Comparator.nullsFirst(String::compareTo)) + .thenComparing(Person::getHeight, Comparator.nullsFirst(Integer::compareTo)) .thenComparing(Person::getCreationDate) .thenComparing(p -> p.getNationality().toString()) .thenComparing(Person::getLocation)