import java.util.*;
class People{
private String name;
public People(String name){
this.name=name;
}
public String getName(){return name;}
public String toString(){return name;}
}
class Pet{
String name;
public String getName(){return name;}
public String toString(){return name;}
}
class Cat extends Pet{
public Cat(String name){
this.name=name;
}
}
class Dog extends Pet{
public Dog(String name){
this.name=name;
}
}
class Pig extends Pet{
public Pig(String name){
this.name=name;
}
}
public class MapOfList{
public static void main(String[] args){
Map<People,List<? extends Pet>> petPeople=new HashMap<People,List<? extends Pet>>();
petPeople.put(new People("zhangsan"),Arrays.asList(
new Cat("cat_zhangsi"),
new Dog("dog_zhangsan")
)
);
petPeople.put(new People("lisi"),Arrays.asList(
new Cat("cat_lisi"),
new Pig("pig_lisi")
)
);
petPeople.put(new People("wangwu"),Arrays.asList(
new Cat("cat_wangwu"),
new Dog("dog_wangwu"),
new Pig("pig_wnagwu")
)
);
System.out.println(petPeople);
for(People p:petPeople.keySet()){
System.out.println(p+" has :");
for(Pet k:petPeople.get(p))
System.out.print(k+" , ");
System.out.println();
}
}
}