Guava Multimap
场景
为了解决Map<K, List>或者Map<K, Set>这样复杂的、嵌套的集合类型数据结构,避免麻烦的操作方式,项目中引入了Multimap集合类型。下面介绍几种常用的实现类型: HashMultiMap、LinkedHashMultimap、TreeMultimap,读者可以比对输出结果,观察到三者实现的差别,选择适合的结构使用。
HashMultiMap
key重复时,相同key的key-value pair 的value值是放在同一个数组中,相同的value会去重:
@Test
public void testHashMultimap(){
Multimap<Integer, Integer> map = HashMultimap.create();
map.put(4, 2);
map.put(4, 7);
map.put(1, 4);
map.put(1, 5);
map.put(1, 3);
map.put(2, 3);
map.put(2, 9);
map.put(2, 7);
map.put(4, 5);
System.out.println(map.toString());
/*输出结果:
*{1=[4, 5, 3], 2=[9, 3, 7], 4=[5, 2, 7]}
*/
}
LinkedHashMultimap
LinkedHashMultimap类操作方法与HashMultimap类一致,唯一的区别是LinkedHashMultimap保存了记录的插入顺序,循环遍历时 先放入Multimap中的数据先输出。注意:这个顺序对key/value都有效
@Test
public void testLinkedHashMultimap(){
Multimap<Integer, I

博客介绍了Guava库中的Multimap集合类型,特别是HashMultiMap、LinkedHashMultimap和TreeMultimap三种实现方式。HashMultiMap在key重复时合并value,LinkedHashMultimap保持插入顺序,而TreeMultimap实现了SortedSetMultimap接口,提供排序功能。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



