关注google的guava工具包

本文介绍了Google Guava库中多值Map的功能与使用方法,包括如何创建、添加元素、获取大小、获取集合以及删除特定值等操作,并通过示例代码展示了其灵活性。
google的guava工具包的确很多好东西,包括之前的字符串处理工具类的,还有大量的collection相关的,项目地址在:http://code.google.com/p/guava-libraries/
留意到其中的collection相关类中的map,简单介绍如下,更多的请大家补充挖掘或者
看原来的文档:



guava提供的是多值map!,就是说,一个key,可以对应多个value了,比如一个人会有多个联系号码等,可以表达为:
multimap<String,String> phonebook=ArrayListMultmap.create();
phonebook.put("a","43434");
phonebook.put("b","3434434");
system.out.println(phonebook,get("a"));


还有map的查询:
Java代码 复制代码 收藏代码
  1. Map<String, Integer> user = new HashMap<String, Integer>();
  2. user.put("张三", 20);
  3. user.put("李四", 22);
  4. user.put("王五", 25);
  5. // 所有年龄大于20岁的人员
  6. Map<String, Integer> filtedMap = Maps.filterValues(user,
  7. new Predicate<Integer>() {
  8. public boolean apply(Integer value) {
  9. return value > 20;
  10. }
  11. });
  12. System.out.println(filtedMap);
Map<String, Integer> user = new HashMap<String, Integer>();
		user.put("张三", 20);
		user.put("李四", 22);
		user.put("王五", 25);
		// 所有年龄大于20岁的人员
		Map<String, Integer> filtedMap = Maps.filterValues(user,
				new Predicate<Integer>() {
					public boolean apply(Integer value) {
						return value > 20;
					}
				});
		System.out.println(filtedMap);




再来点例子,加深了解:

Java代码 复制代码 收藏代码
  1. public class MutliMapTest {
  2. public static void main(String... args) {
  3. Multimap<String, String> myMultimap = ArrayListMultimap.create();
  4. // Adding some key/value
  5. myMultimap.put('Fruits', 'Bannana');
  6. myMultimap.put('Fruits', 'Apple');
  7. myMultimap.put('Fruits', 'Pear');
  8. myMultimap.put('Vegetables', 'Carrot');
  9. // Getting the size
  10. int size = myMultimap.size();
  11. System.out.println(size); // 4
  12. Collection<string> fruits = myMultimap.get('Fruits');
  13. System.out.println(fruits); // [Bannana, Apple, Pear]
  14. Collection<string> vegetables = myMultimap.get('Vegetables');
  15. System.out.println(vegetables); // [Carrot]
  16. // 循环输出
  17. for(String value : myMultimap.values()) {
  18. System.out.println(value);
  19. }
  20. // 移走某个值
  21. myMultimap.remove('Fruits','Pear');
  22. System.out.println(myMultimap.get('Fruits')); // [Bannana, Pear]
  23. //移走某个KEY的所有对应value
  24. myMultimap.removeAll('Fruits');
  25. System.out.println(myMultimap.get('Fruits')); // [] (Empty Collection!)
  26. }
  27. }
public class MutliMapTest {
    public static void main(String... args) {
  Multimap<String, String> myMultimap = ArrayListMultimap.create();

  // Adding some key/value
  myMultimap.put('Fruits', 'Bannana');
  myMultimap.put('Fruits', 'Apple');
  myMultimap.put('Fruits', 'Pear');
  myMultimap.put('Vegetables', 'Carrot');

  // Getting the size
  int size = myMultimap.size();
  System.out.println(size);  // 4

 
  Collection<string> fruits = myMultimap.get('Fruits');
  System.out.println(fruits); // [Bannana, Apple, Pear]

  Collection<string> vegetables = myMultimap.get('Vegetables');
  System.out.println(vegetables); // [Carrot]

  // 循环输出
  for(String value : myMultimap.values()) {
   System.out.println(value);
  }

  // 移走某个值
  myMultimap.remove('Fruits','Pear');
  System.out.println(myMultimap.get('Fruits')); // [Bannana, Pear]

  //移走某个KEY的所有对应value
  myMultimap.removeAll('Fruits');
  System.out.println(myMultimap.get('Fruits')); // [] (Empty Collection!)
 }
}



更详细的看:
http://docs.guava-libraries.googlecode.com/git-history/release09/javadoc/com/google/common/collect/Multimap.html  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值