google的guava工具包的确很多好东西,包括之前的字符串处理工具类的,还有大量的collection相关的,项目地址在:http://code.google.com/p/guava-libraries/
留意到其中的collection相关类中的map,简单介绍如下,更多的请大家补充挖掘或者 看原来的文档:
guava提供的是多值map!,就是说,一个key,可以对应多个value了,比如一个人会有多个联系号码等,可以表达为:
返回是一个 集合类
Multimapphonebook = ArrayListMultimap.create();phonebook.put("1", "A");phonebook.put("2", "B");phonebook.put("1", "C");Collection
下面说一下 有关map的查询:
Mapmap = new HashMap (); map.put("张三", 20); map.put("李四", 22); map.put("王五", 25); // 所有年龄大于20岁的人员 Map map2 = Maps.filterValues(map, new Predicate
再来点例子,加深了解:
Multimapmultimap = 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 fruits = multimap.get("Fruits"); System.out.println(fruits);//[Bannana, Apple, Pear] Collection 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"));//[]