1.map存储一个key对应多个value:
List values=new ArraysList<>();
map.put(key,values);
values.add(xxx);
values.add(xxx);
map.entrySet().forEach(()->{});
这样可以动态修改每个values中的内容

2.map存储多个key对应一个value
MultiKeyMap<k1,k2,…,kn,v> multiMap = new MultiKeyMap();
遍历MultiKeyMap:
multiKeyMap.entrySet().stream.map(map-{
Map.Entry<MultiKey<? extends String>, String> entry = (Map.Entry<MultiKey<? extends String>, String>)map;
entry.getKey().getKey(0);
entry.getKey().getKey(1);
entry.getValue();
return xx;
}).collect(toList());
MultiKeyMap遍历需要对其中一个元素做类型转换,因为没有values()这样直接获取value的方法,默认提供的方法和Map本身有区别

ps.MultiKeyMap支持多个key(more than 2)

另外一种实现思路是将多个key存储到一个自定义的class中,然后将这个class当作key来使用,map用原本的map即可