使用多重映射作为参数的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);