google的guava工具包的確很多好東西,包括之前的字符串處理工具類的,還有大量的collection相關(guān)的,項(xiàng)目地址在:http://code.google.com/p/guava-libraries/
留意到其中的collection相關(guān)類中的map,簡單介紹如下,更多的請(qǐng)大家補(bǔ)充挖掘或者
看原來的文檔:
guava提供的是多值map!,就是說,一個(gè)key,可以對(duì)應(yīng)多個(gè)value了,比如一個(gè)人會(huì)有多個(gè)聯(lián)系號(hào)碼等,可以表達(dá)為:
multimap<String,String> phonebook=ArrayListMultmap.create();
phonebook.put("a","43434");
phonebook.put("b","3434434");
system.out.println(phonebook,get("a"));
還有map的查詢:
再來點(diǎn)例子,加深了解:
更詳細(xì)的看:
http://docs.guava-libraries.googlecode.com/git-history/release09/javadoc/com/google/common/collect/Multimap.html
留意到其中的collection相關(guān)類中的map,簡單介紹如下,更多的請(qǐng)大家補(bǔ)充挖掘或者
看原來的文檔:
guava提供的是多值map!,就是說,一個(gè)key,可以對(duì)應(yīng)多個(gè)value了,比如一個(gè)人會(huì)有多個(gè)聯(lián)系號(hào)碼等,可以表達(dá)為:
multimap<String,String> phonebook=ArrayListMultmap.create();
phonebook.put("a","43434");
phonebook.put("b","3434434");
system.out.println(phonebook,get("a"));
還有map的查詢:
- 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);
再來點(diǎn)例子,加深了解:
- 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]
- // 循環(huán)輸出
- for(String value : myMultimap.values()) {
- System.out.println(value);
- }
- // 移走某個(gè)值
- myMultimap.remove('Fruits','Pear');
- System.out.println(myMultimap.get('Fruits')); // [Bannana, Pear]
- //移走某個(gè)KEY的所有對(duì)應(yīng)value
- myMultimap.removeAll('Fruits');
- System.out.println(myMultimap.get('Fruits')); // [] (Empty Collection!)
- }
- }
更詳細(xì)的看:
http://docs.guava-libraries.googlecode.com/git-history/release09/javadoc/com/google/common/collect/Multimap.html