逛论坛看到google guava ,一开始还不了解这个是干嘛的.找了点资料,了解到是个工具类,对map的操作大大增强.用起来感觉很好.编写了简单demo,简单记录使用.
package guava;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.google.common.base.Predicate;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
/**
*
*
* @project Tool
* @type Test1
* @Description
* @author xuyw
* @email xyw10000@163.com
* @date 2014-4-4 上午09:52:12
* @version 1.0
*
*/
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
// Multimap 一个键可保存多个值 例如一个学生可以有多个老师
Multimap<String, String> teacherMap = ArrayListMultimap.create();
teacherMap.put("zhangsan", "物理老师");
teacherMap.put("zhangsan", "化学老师");
teacherMap.put("zhangsan", "生物老师");
teacherMap.put("lisi", "物理老师");
Collection<String> col=teacherMap.get("zhangsan");
System.out.println("zhangsan老师列表");
for (String c : col) {
System.out.println(c);
}
System.out.println("");
System.out.println("lisi老师");
System.out.println(teacherMap.get("lisi"));
System.out.println("");
// 移走某个值
teacherMap.remove("zhangsan", "物理老师"); //[化学老师, 生物老师]
System.out.println(teacherMap.get("zhangsan"));
//移走某个KEY的所有对应value
teacherMap.removeAll("zhangsan");
System.out.println(teacherMap.get("zhangsan")); // []
// Maps 支持过滤数据
Map<String, Integer> user = new HashMap<String, Integer>();
user.put("小徐", 22);
user.put("xuyw", 23);
user.put("10000", 15);
Map<String, Integer> filtedMap = Maps.filterValues(user,
new Predicate<Integer>() {
public boolean apply(Integer value) {
return value > 20;
}
});
System.out.println(filtedMap);
}
}
附上jar api 下载地址: https://code.google.com/p/guava-libraries/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount