guava multimap 和 multiset的使用
multimap和multiset都是可以存储多个重复key的新类型Collection。
最近恰好使用到这两个东西,感觉的确很方便。
multimap用来处理同样的key的list,如果不使用这个我们就需要使用的是Map
Multimap<String, String> myMultimap = ArrayListMultimap.create();
myMultimap.put("Fruits", "Bannana");
myMultimap.put("Fruits", "Apple");
myMultimap.put("Fruits", "Pear");
myMultimap.put("Vegetables", "Carrot");
int size = myMultimap.size();
System.out.println(size);
//getting value
Collection<String> fruits = myMultimap.get("Fruits");
System.out.println(fruits);
Set<String> keySet = myMultimap.keySet();
for (String str : keySet) {
System.out.println(str);
System.out.println("-----------");
}
for(String str : myMultimap.values()) {
System.out.println(str);
}
}
输出:
4
[Bannana, Apple, Pear]
Fruits
-----------
Vegetables
-----------
Bannana
Apple
Pear
Carrot
multiset的示例程序:
public static void main(String[] args) {
Multiset<String> multiset = HashMultiset.create();
multiset.add("apple");
multiset.add("apple");
multiset.add("orange");
multiset.add("apple");
multiset.add("orange");
multiset.add("apple");
multiset.add("peach");
multiset.add("apple");
multiset.add("peach");
for (String key : multiset.elementSet()) {
System.out.println(key + "的数量是: " + multiset.count(key));
}
}
输出:
orange的数量是: 2
apple的数量是: 5
peach的数量是: 2
从API来说还是很容易使用的,还有具体的API可以从guava官方上看下。还有一个Table,这次也使用了,感觉API还是蛮强大的。