关注google的guava工具包Map集合

 

google的guava工具包的确很多好东西,包括之前的字符串处理工具类的,还有大量的collection相关的,项目地址在:http://code.google.com/p/guava-libraries/
留意到其中的collection相关类中的map,简单介绍如下,更多的请大家补充挖掘或者
看原来的文档:

 

guava提供的是多值map!,就是说,一个key,可以对应多个value了,比如一个人会有多个联系号码等,可以表达为:

 

返回是一个 集合类

 

Multimap<String, Object> phonebook = ArrayListMultimap.create();
phonebook.put("1", "A");
phonebook.put("2", "B");
phonebook.put("1", "C");
Collection<Object> collection = phonebook.get("1");
		
System.out.println(phonebook.get("1"));

 

下面说一下 有关map的查询:

Map<String, Object> map = new HashMap<String, Object>();
		map.put("张三", 20);
		map.put("李四", 22);
		map.put("王五", 25);
		
		// 所有年龄大于20岁的人员 
		Map<String, Object> map2 = Maps.filterValues(map, new Predicate<Object>() {
			@Override
			public boolean apply(Object obj) {
				return (Integer)obj > 20;
			}
		});
		
                System.out.println(map2);

 

 再来点例子,加深了解:

Multimap<String, String> multimap = ArrayListMultimap.create();
		
		// Adding some key/value  
		multimap.put("Fruits", "Bannana");  
		multimap.put("Fruits", "Apple");  
		multimap.put("Fruits", "Pear");  
		multimap.put("Vegetables","Carrot");
		
		// Getting the size  
		int size = multimap.size();
		System.out.println(size); // 4
		
		Collection<String> fruits = multimap.get("Fruits");
		System.out.println(fruits);//[Bannana, Apple, Pear]
		
		Collection<String> vegetables = multimap.get("Vegetables"); 
		System.out.println(vegetables);//[Carrot]
		
		// 循环输出
		for(String value : multimap.values()){
			System.out.println(value);//Bannana,Apple,Pear,Carrot
		}
		
		// 移走某个值
		multimap.remove("Fruits", "Pear");
		System.out.println(multimap.get("Fruits")); //[Bannana, Apple]
		
		//移走某个KEY的所有对应value  
		multimap.removeAll("Fruits");
		System.out.println(multimap.get("Fruits"));//[]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值