1、前言
好的工具类能节约开发者的开发成本,今天学习一个新的工具类guava。guava是谷歌出品的一款开源java工具类,提供一些常用的方法。以下指示一些常用的方法,guava还提供其他的一些方法,可以通过在线API自行学习。
2、坐标
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
3、小试牛刀
/**
* 集合工具
* */
@Test
/*
* 简写new方法,可以默认初始化。可以继续添加元素(优于Arrays.asList)
* Map、Set均可这样写
*/
public void test01() {
List<Integer> intList = Lists.newArrayList(1,2,3);
System.out.println(intList); //[1,2,3]
System.out.println("----------------------");
intList.add(5);
System.out.println(intList); //[1,2,3,5]
}
@Test
// 取出集合中某一属性拼接成List
public void test02() {
List<Student> stuList = Lists.newArrayList(new Student("Test001","Jack Chen","Kong Fu"),
new Student("Test002","Maike Jackson","Dancing"));
List<String> noList = Lists.transform(stuList, new Function<Student, String>() {
@Override
public String apply(Student stu) {
return stu.getNo();
}
});
System.out.println(noList.toString()); //[Test001, Test002]
}
@Test
// 按照List集合中的对象唯一属性,与集合中的对象对应,返回Map
public void test03() {
List<Student> stuList = Lists.newArrayList(new Student("Test001","Jack Chen","Kong Fu"),
new Student("Test002","Maike Jackson","Dancing"));
ImmutableMap<String, Student> map = Maps.uniqueIndex(stuList, new Function<Student, String>() {
@Override
public String apply(Student stu) {
return stu.getNo();
}
});
System.out.println(map.get("Test002").toString()); //Student [no=Test002, name=Maike Jackson, major=Dancing]
}
/**
* String工具类
* */
@Test
public void test04() {
String str = "";
System.out.println(str);
System.out.println("--------------");
System.out.println(Strings.emptyToNull(str)); // null
System.out.println("--------------");
System.out.println(Strings.nullToEmpty(Strings.emptyToNull(str))); // ""
System.out.println(Strings.isNullOrEmpty("")); //true
}
/**
* 字符串的分割和连接
* */
@Test
public void test05() {
Joiner joiner = Joiner.on("#");
String str = joiner.join(Lists.newArrayList(1, 3, 5, 7));
System.out.println(str); // 1#3#5#7
String str2 = " a;null;b;;c; ;d; e ;f ";
Splitter split = Splitter.on(";");
Iterable<String> list = split.split(str2);
System.out.println(list.toString()); //[ a, null, b, , c, , d, e , f ]
// 取消前后的空格以及忽略空字符换
System.out.println( Splitter.on(";").trimResults().omitEmptyStrings().split(str2).toString()); //[a, null, b, c, d, e, f]
}
4、参考文档
在线API:http://tool.oschina.net/apidocs/apidoc?api=guava
中文PDF文档下载:https://pan.baidu.com/s/1RTbTU26-t1s5lMkvfzONOQ