I have the following problem: Given these classes,

```
class Person {
    private String zip;
    ...
    public String getZip(){
        return zip;
    }
}

class Region {
    private List<String> zipCodes;
    ...
    public List<String> getZipCodes() {
        return zipCodes;
    }
}

```

using the Java 8 Stream API, how do I obtain a `Map<Person, List<Region>>` based on whether the `Region` contains that `Person`'s zip code? In other words how do I group the regions by the people whose zip codes belong to those regions?

I've done it in Java 7 the old fashioned way, but now I have to migrate the code to take advantage of the new features in Java 8.

Thank you,

Impeto