Multimap用法详解

Multimap

Multimap 是 Google 的 Guava 库为 Java 引入的一种新集合类型,它允许将多个值存储在单个键下。它被设计为一种替代 Map<K, List> 或 Map<K, Set>(JDK 标准集合框架)的方案。
Multimap<K, V> 扩展了 AbstractMultimap<K, V>,并提供了添加、删除和访问与键相关值的方法。它还允许您高效地执行像 putAll(Map<K, V> m)、removeAll(Collection<? extends V> c) 和 retainAll(Collection<? extends V> c) 这样的批量操作,这使得它在需要处理单个键下的多个值的场景中特别有用。
Multimap 的一些关键特性包括:

  1. 为单个键存储多个值。
  2. 提供添加、删除和访问值的高效方法。
  3. 支持批量操作,如 putAll、removeAll 和 retainAll。
  4. 实现了 Multimap 接口,提供了额外的方法,如 keys()、values() 和 entries()。
  5. 在许多用例中可以作为
    Map<K, List> 或 Map<K, Set> 的替代品。

插入值

 Multimap<Object, Object> multiMap = ArrayListMultimap.create();
            //插入值
            multiMap.put("研发部","张三");
            multiMap.put("研发部","李四");
            multiMap.put("研发部","李四");
            multiMap.put("研发部","王五");
            multiMap.put("研发部","王五");
            multiMap.put("研发部","铁蛋");
            multiMap.put("研发部","铁蛋");
            multiMap.put("研发部","张二和");
            multiMap.put("宣传部","宣传");
            multiMap.put("宣传部","宣传2");
            multiMap.get("研发部").add("张小凡");

查询

            Collection<Object> name = multiMap.get("研发部");
            System.err.println(name);

            System.out.println(ImmutableSet.copyOf(name));

在这里插入图片描述

想要get返回List或者Set

在定义时可以定义为ListMultimap,SetMultimap和SortedSetMultimap等等

       ArrayListMultimap<Object, Object> myMutlimap = ArrayListMultimap.create();
            myMutlimap.put("myKey","1");
            myMutlimap.put("myKey","2");
            myMutlimap.put("myKey","2");
            List<Object> myValues = myMutlimap.get("myKey");
            System.err.println(myValues);

在这里插入图片描述

官方图解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值