使用多重映射作为参数的Java

使用多重映射作为参数的Java,java,Java,我想为我放置的每一个键创建一个多重映射,但我发现这个错误multimap是抽象的;无法实例化。还有其他方法吗 package Graph; import com.google.common.collect.Multimap; import java.util.HashMap; public class builder { public static void main(String[] args) { HashMap<String,Mult

我想为我放置的每一个键创建一个多重映射,但我发现这个错误
multimap是抽象的;无法实例化。
还有其他方法吗

package Graph;


import com.google.common.collect.Multimap;
import java.util.HashMap;

public class builder {

    public static void main(String[] args) {
        
        HashMap<String,Multimap<String,String>> map = new HashMap<>();
        map.put("Cars",new Multimap<String,String>());
        
    }
}

包图;
导入com.google.common.collect.Multimap;
导入java.util.HashMap;
公共类生成器{
公共静态void main(字符串[]args){
HashMap=newHashMap();
put(“Cars”,新的Multimap());
}
}
接口,而不是类 中是一个接口。不能实例化接口

选择要实例化的接口的具体实现

番石榴至少供应一打。第三方也可能提供实现(我不知道有)


顺便说一句,谷歌还提供了多地图功能。

以下是谷歌多地图界面的几点内容

附注0 Multimap是一种集合类型的数据结构,它可以针对一个键存储1个以上的值

    multimap.get(0).add("Soumyajit");        
    multimap.get(0).add("Chatterjee");        
    System.out.println(multimap);
将返回:
{0=[Soumyajit,Chatterjee]}
作为输出

附注1 它有两个子接口
ListMultimap
SetMultimap
。我们可以使用Multimap的
static
方法来创建实现
Multimap
接口的类,即
ArrayListMultimap、LinkedListMultimap

示例:
ListMultimap m=ArrayListMultimap.create()

附注2 我们可以使用:
Multimap.get(key)
;如果它的引用存在,它将返回值,因此如果我们修改返回的结果集,它将反射回原始映射。 如果找不到特定键的值,它将返回一个空集合(非NULL)

因此,以下代码是绝对正确的:

        ListMultimap<Integer, String> multimap =  ArrayListMultimap.create();        
      multimap.get(0).add("Soumyajit");        
      multimap.get(4).add("Chatterjee");        
对于删除,我们将遵循相同的结构:

   map.get(index).remove(value);
     or
   map.remove(index, value);

参考资料取自:

如其他人所述,
Multimap
是一个接口。您需要使用具体的类,例如
HashMultimap
ImmutableMultimap
。请参见以下示例:

HashMap<String, Multimap<String, String>> maps = new HashMap<>();

Multimap<String, String> multimap = HashMultimap.create();
multimap.put("KEY1", "V1");
    
maps.put("KEY", multimap);
HashMap-maps=newhashmap();
Multimap Multimap=HashMultimap.create();
multimap.put(“键1”、“V1”);
地图。放置(“键”,多地图);

这与使用
HashMap
TreeMap
填充
Map
类型的参数相同,后者是一个接口。您需要使用实现
Multimap
的类中的一个来代替,该类指定,例如
HashMultimap
TreeMultimap
HashMap<String, Multimap<String, String>> maps = new HashMap<>();

Multimap<String, String> multimap = HashMultimap.create();
multimap.put("KEY1", "V1");
    
maps.put("KEY", multimap);