Java 8 here. I have the following POJOs:

```
public enum VehicleType {
  Car,
  Motorcycle,
  Scooter,
  Skateboard
}

@Getter
@Setter
public class Driver {
  private String uuid;
  private Long numYearsDriving;
  private VehicleType vehicleType;
}

```

Now I have the following code that takes a `List<Driver>` and organizes them onto a `Map<VehicleType,List<Driver>` where the keys are the different types of vehicles we have, and each value is the "sub-list" (of the original list) of all `Drivers` for those vehicle types:

```
List<Driver> allDrivers = getSomehow();

Map<VehicleType,List<Driver>> driversByVehicleType = allDrivers.stream()
    .collect(Collectors.groupingBy(Driver::getVehicleType));

```

So far, so good, I *think*. Now I want to inspect that map and fetch all the drivers of either scooters or skateboards. My best attempt:

```
List<Driver> scooterSkateboarders = Stream
      .concat(
          driversByVehicleType.get(VehicleType.Scooter).stream(),
          driversByVehicleType.get(VehicleType.Skateboard).stream())
      .collect(Collectors.toList());

```

...compiles, however, it throws a `NullPointerException` if `allDrivers` **does not** contain any Scooter/Skateboard drivers to begin with. So I ask: how to make my code "null safe" in the event that `allDrivers` only contains, say, `Car` drivers?