版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/83779364
下载guava-18.0.jar,下载地址为http://www.open-open.com/news/view/157e6df
MultiSet无序 可重复,count增强了可读性,操作简单, 使用范围:例如统计会员访问本网站的次数
/**
* 使用Multiset 无序 可重复
* 需求 统计单词出现的次数
*/
public class Demo01 {
public static void main (String[] args) {
String str="hello jamy goog moning hello word";
String [] sp=str.split(" ");
Multiset<String> multiset= HashMultiset.create();
for (String tmp:sp) {
multiset.add(tmp);
}
//循环输出
Set<String> strings = multiset.elementSet();
for (String string:strings) {
//count 获取重复的次数
System.out.println(string+"-->"+multiset.count(string));
}
}
}
Multimap key是可以重复的 如果key重复 一直向val写入
/**需求 :分析查看教师的没门课程
*
* MultiMap key可以重复
*
*/
public class Demo02 {
public static void main (String[] args) {
Map<String,String> map=new HashMap<>();
map.put("数学","张老师");
map.put("英语","张老师");
map.put("历史","王老师");
map.put("语文","哈老师");
Multimap<String,String> multimap= ArrayListMultimap.create();
Set<String> strings = map.keySet();
for (String string:strings) {
//把 key val 调换位置 multimap的key 是可以重复的
multimap.put(map.get(string),string);
}
//循环查看
Set<String> stringSet = multimap.keySet();
for (String str: stringSet) {
Collection<String> strings1 = multimap.get(str);
System.out.println(str+"--->"+strings1);
}
}
BiMap key 和 val 都不能重复
/**
* Hashmap key不能重复 val可以重复
* BigMaP key val 都不能重复 双向的map:就是通过val找到key 通过key找到val
*/
public class Demo03 {
public static void main (String[] args) {
BiMap<String,String> biMap= HashBiMap.create();
biMap.put("user","[email protected]");
biMap.put("admin","[email protected]");
//通过邮箱找用户
String s = biMap.inverse().get("[email protected]");
System.out.println(s);
//通过用户找邮箱
String admin = biMap.inverse().inverse().get("admin");
System.out.println(admin);
}
}