HashMultimap 旧城等待, 2022-08-09 16:49 88阅读 0赞 代码: package mapreduce.baozi.multiplemap; import java.util.HashMap; import java.util.HashSet; import java.util.TreeMap; import com.google.common.collect.HashMultimap; import com.google.common.collect.TreeMultimap; /** multimap 与 map 一样,都是使用红黑树对记录型的元素数据,按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是 multimap 允许将具有重复键值的元素插入容器。在 multimap 容器中,元素的键值与元素的映照数据的映照关系,是多对多的,因此,multimap 称为多重映照容器。multimap 与 map 之间的多重特性差异,类似于 multiset 与 set 的多重特性差异。 HashMutliMap STL中有MultiMap,而java的util包中并没有这个容器。 google的guava libary的包下有这个容器。 google类库的下载地址:http://code.google.com/p/guava-libraries/wiki/Release09。 import的路径是:com.google.common.collect.Multimap; 在这个包中google实现了一系列的接口和容器,Multimap是一个定义的接口,继承接口生成了许多的各种容器,非常方便。 继承Multimap有许多的Multimap变种。分别有: 1.ArrayListMultimap: 2.ForwardingMultimap: 3.HashMultimap: 4.ImmutableListMultimap: 5.ImmutableMultimap: 6.ImmutableSetMultimap: 7.LinkedHashMultimap: 8.LinkedListMultimap: 9.TreeMultimap: */ public class MultipleMapDemo { public static void main(String[] args) { System.out.println("hashMap:"); HashMap<String, Integer> hashMap=new HashMap<String,Integer>(); hashMap.put("hadoop", 23); hashMap.put("hadoop", 22); hashMap.put("spark", 56); hashMap.put("spark", 58); hashMap.put("storm", 78); hashMap.put("", 78); hashMap.put(null, 78); for(String demo:hashMap.keySet()){ System.out.println(demo+"\t"+hashMap.get(demo)); } System.out.println("\n"+"hashMultimap:"); HashMultimap<String,Integer> hashMultimap = HashMultimap.create(); hashMultimap.put("hadoop", 23); hashMultimap.put("hadoop", 22); hashMultimap.put("spark", 56); hashMultimap.put("spark", 58); hashMultimap.put("storm", 78); hashMultimap.put("", 78); hashMultimap.put(null, 78); for(String demo:hashMultimap.keySet()){ System.out.println(demo+"\t"+hashMultimap.get(demo)); } System.out.println("\n"+"HashSet:"); HashSet<String> hashSet = new HashSet<>(); hashSet.add("hadoop"); hashSet.add("hadoop"); hashSet.add("spark"); hashSet.add("spark"); hashSet.add("storm"); hashSet.add(""); hashSet.add(null); for(String str:hashSet ){ System.out.println(str); } System.out.println("\n"+"TreeMap:"); TreeMap<String,Integer> treeMap = new TreeMap<String,Integer>(); treeMap.put("hadoop", 23); treeMap.put("hadoop", 22); treeMap.put("spark", 56); treeMap.put("spark", 58); treeMap.put("storm", 78); treeMap.put("hive", 34); treeMap.put("kafka", 87); treeMap.put("", 78); //treeMap.put(null, 78); //key不能为null for(String demo:treeMap.keySet()){ System.out.println(demo+"\t"+treeMap.get(demo)); } System.out.println("\n"+"TreeMultimap:"); TreeMultimap<String,Integer> treeMultimap = TreeMultimap.create(); treeMultimap.put("hadoop", 23); treeMultimap.put("hadoop", 22); treeMultimap.put("spark", 56); treeMultimap.put("spark", 58); treeMultimap.put("storm", 78); treeMultimap.put("hive", 34); treeMultimap.put("kafka", 87); treeMultimap.put("", 78); //treeMultimap.put(null, 78); //key不能为null for(String demo:treeMultimap.keySet()){ System.out.println(demo+"\t"+treeMultimap.get(demo)); } } } 输出: hashMap: null 78 78 hadoop 22 storm 78 spark 58 hashMultimap: null [78] [78] hadoop [23, 22] storm [78] spark [58, 56] HashSet: null hadoop storm spark TreeMap: 78 hadoop 22 hive 34 kafka 87 spark 58 storm 78 TreeMultimap: [78] hadoop [22, 23] hive [34] kafka [87] spark [56, 58] storm [78]
相关 HashMultimap 快速入门 HashMultimap 快速入门 类继承关系 ![image-20230404101720634][] 构造器私有,不能直接new方法创建,类提供create方 喜欢ヅ旅行/ 2023年09月27日 17:10/ 0 赞/ 1 阅读
相关 HashMultimap 代码: package mapreduce.baozi.multiplemap; import java.util.HashMap; 旧城等待,/ 2022年08月09日 16:49/ 0 赞/ 89 阅读
还没有评论,来说两句吧...