在开发中,有时会遇到需要一个map存储一个key 对应 多个 value的情况。
实现方式一:
- 使用list集合存储所有数据
- 将list集合根据拆分为多个list集合
- 将多个list集合存储到map中
实现方式二:
- 引入guava依赖
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
- 使用list集合存储所有数据
- 创建ArrayListMultimap对象 ,key 的类型为分组类型,value类型为list集合中存储数据的类型
- 遍历list集合,存储到map中即可完成分组;一键对多值(一个key对应一个list集合)
ArrayListMultimap<String, User> levelDeptMap = ArrayListMultimap.create(); 等价于 Map<String,List<User>> map = new HashMap();