JavaGuava,Apache和Eclipse集合中的Multimap
示例
此多图允许重复的键值对。JDK类似物是HashMap<K,List>,HashMap<K,Set>等。
使用多图的示例
任务:解析“HelloWorld!大家好!HiWorld!”字符串以分隔单词并使用MultiMap打印每个单词的所有索引(例如,Hello=[0,2],World!=[1,5],依此类推)
1.来自Apache的MultiValueMap
String INPUT_TEXT = "Hello World! Hello All! Hi World!";
//将文本解析为单词和索引
List<String> words = Arrays.asList(INPUT_TEXT.split(" "));
//创建多图
MultiMap<String, Integer> multiMap = new MultiValueMap<String, Integer>();
//填充多图
int i = 0;
for(String word: words) {
multiMap.put(word, i);
i++;
}
//打印所有单词
System.out.println(multiMap); //打印{Hi=[4],Hello=[0,2],世界!=[1,5],全部!=[3]}-按随机顺序
//打印所有唯一的单词
System.out.println(multiMap.keySet()); //打印[嗨,您好,世界!,全部!]-随机订购
//打印所有索引
System.out.println("Hello = " + multiMap.get("Hello")); //打印[0,2]
System.out.println("World = " + multiMap.get("World!")); //打印[1,5]
System.out.println("All = " + multiMap.get("All!")); //打印[3]
System.out.println("Hi = " + multiMap.get("Hi")); //打印[4]
System.out.println("Empty = " + multiMap.get("Empty")); //打印空
//打印计数唯一词
System.out.println(multiMap.keySet().size()); //打印42.来自GS/EclipseCollection的HashBiMap
String[] englishWords = {"one", "two", "three","ball","snow"};
String[] russianWords = {"jeden", "dwa", "trzy", "kula", "snieg"};
//创建多集
MutableBiMap<String, String> biMap = new HashBiMap(englishWords.length);
//创建英语-波兰语字典
int i = 0;
for(String englishWord: englishWords) {
biMap.put(englishWord, russianWords[i]);
i++;
}
//打印字数
System.out.println(biMap); //打印{two=dwa,ball=kula,one=jeden,snow=snieg,three=trzy}-按随机顺序
//打印所有唯一的单词
System.out.println(biMap.keySet()); //打印[雪,二,一,三,球]-随机排列
System.out.println(biMap.values()); //打印[dwa,kula,jeden,snieg,trzy]-随机排列
//打印文字翻译
System.out.println("one = " + biMap.get("one")); //打印一个=jeden
System.out.println("two = " + biMap.get("two")); //打印两个=dwa
System.out.println("kula = " + biMap.inverse().get("kula")); //打印库拉=球
System.out.println("snieg = " + biMap.inverse().get("snieg")); //打印snieg=雪
System.out.println("empty = " + biMap.get("empty")); //打印空=空
//打印数词对
System.out.println(biMap.size()); //打印5来自Guava的HashMultiMap
StringINPUT_TEXT="HelloWorld!HelloAll!HiWorld!";
//将文本解析为单词和索引
List<String>words=Arrays.asList(INPUT_TEXT.split(""));
//创建多图
Multimap<String,Integer>multiMap=HashMultimap.create();
//填充多图
inti=0;
for(Stringword:words){
multiMap.put(word,i);
i++;
}
//打印所有单词
System.out.println(multiMap);//打印{Hi=[4],Hello=[0、2],World!=[1、5],All!=[3]}-键和值以随机顺序排列
//打印所有唯一的单词
System.out.println(multiMap.keySet()); //打印[嗨,您好,世界!,全部!]-随机订购
//打印所有索引
System.out.println("Hello="+multiMap.get("Hello")); //打印[0,2]
System.out.println("World="+multiMap.get("World!")); //打印[1,5]
System.out.println("All="+multiMap.get("All!")); //打印[3]
System.out.println("Hi="+multiMap.get("Hi")); //打印[4]
System.out.println("Empty="+multiMap.get("Empty")); //打印[]
//打印所有单词
System.out.println(multiMap.size()); //打印6
//打印计数唯一词
System.out.println(multiMap.keySet().size()); //打印4
否示例:
I.Apache集合:
MultiValueMap
MultiValueMapLinked
MultiValueMapTree
二。GS/Eclipse系列
FastListMultimap
HashBagMultimap
TreeSortedSetMultimap
UnifiedSetMultimap
三,番石榴
HashMultiMap
LinkedHashMultimap
LinkedListMultimap
TreeMultimap
ArrayListMultimap
热门推荐
10 新年恋人祝福语简短创意
11 感动妈妈的祝福语简短
12 孩子周岁红包祝福语简短
13 牛年新年祝福语大全简短
14 叶海燕老师祝福语简短
15 姐妹结婚红包简短祝福语
16 对同学祝福语 简短独特
17 毕业祝福语给同学 简短
18 潮汕话新人祝福语简短