guava是java API蛋糕上的冰激凌(精华).
源码包的简单说明:
com.google.common.annotations:普通注解类型。
com.google.common.base:基本工具类库和接口。
com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。
com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。
com.google.common.eventbus:发布订阅风格的事件总线。
com.google.common.hash: 哈希工具包。
com.google.common.io:I/O工具包。
com.google.common.math:原始算术类型和超大数的运算工具包。
com.google.common.net:网络工具包。
com.google.common.primitives:八种原始类型和无符号类型的静态工具包。
com.google.common.reflect:反射工具包。
com.google.common.util.concurrent:多线程工具包。
现在针对每个包的类现在进行测试。
com.google.common.base:基本工具类库和接口
Ascii:针对ASCII码的处理,比较实用的方法有:
toLowerCase(String param):将传入的param的字符处理为小写。
toUpperCase(String param):将传入的param的字符处理为大写。
truncate(CharSequence seq, int maxLength, String indicator):将seq的字符串截断衔接上indicatori字符串,使总体字符串长度等于maxLength。如果maxLength小于indicator的长度,报错IllegalArgumentException.如果maxLength大于seq的长度,则结果即为seq。
public class AsciiOwnTest { public static void main(String[] args) { String test=Ascii.toLowerCase("ZHONG GUO!"); System.out.println(test); test=Ascii.toUpperCase("feng ge"); System.out.println(test); //test=Ascii.truncate("laoshiha", 3, "....");这个会报错 //System.out.println(test); test=Ascii.truncate("laoshiha", 4, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 5, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 6, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 7, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 8, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 9, "...."); System.out.println(test); } }
结果如下:
zhong guo!
FENG GE
....
l....
la....
lao....
laoshiha
laoshiha
Joiner:用于将容器中的元素进行拼接,这个还是比较实用。
on(String param):按照param来做分隔符。
join(Iterator<?> part):用来拼接迭代器中的元素,返回一个String类型
append(A extend appendable,Iterator<?> parts): 在A对象后边加拼接迭代器中的元素。
public class Test { public static void main(String[] args) { Joiner joiner = Joiner.on(";"); List<String> lists = new ArrayList<String>(); lists.add("hhaha"); lists.add("中国龙"); System.out.println(joiner.join(lists.iterator())); StringBuilder sb = new StringBuilder(); sb.append("什么意思?"); sb =joiner.appendTo(sb, lists); System.out.println(sb.toString()); }
hhaha;中国龙
什么意思?hhaha;中国龙
Objects:实体类
equal(,):校验两个对象是否相等.
public static void main(String[] args) { System.out.println(Objects.equal(1,1)); }
true
Splitter:按照某个字符分割一组数据。
on():分隔符.
split(CharSequence param):分割的数据.
public class Test { public static void main(String[] args) { Iterator<String> it = Splitter.on(",").split("wo,xiang,ni").iterator(); while(it.hasNext()){ System.out.println(it.next()); } } }
结果:
wo
xiang
ni
ComparisonChain:执行比较操作直至发现非零的结果,在那之后的比较输入将被忽略。
class TestCompare implements Comparable<TestCompare>{ private String hehe; private int heihei; public String getHehe() { return hehe; } public void setHehe(String hehe) { this.hehe = hehe; } @Override public int compareTo(TestCompare t) { return ComparisonChain.start() .compare(this.hehe, t.hehe) .compare(this.heihei, t.heihei) .result(); } }