Guava用法(一)
前置条件检查:checkArgument,checkElementIndex,checkPositionIndexes几个比较有用的方法使用。
import com.google.common.base.Preconditions;
public class PreconditionsExplained {
public static void main(String args[]){
PreconditionsExplained pe=new PreconditionsExplained();
pe.method1();
pe.method2();
pe.method3();
}
public void method1(){
int i=0;
Preconditions.checkArgument(i>0,"this number %s is error",i);
}
public void method2(){
Preconditions.checkElementIndex(2, 1);
}
public void method3(){
Preconditions.checkPositionIndexes(0,2,3);
}
}
ComparisonChain链式比较器,减少了部分if/else的循环
public class ComparisonChainTest {
public static void main(String args[]){
ComparisonChainTest ct=new ComparisonChainTest();
System.out.println(ct.method1());
}
public int method1(){
return ComparisonChain.start()
.compare(1,1,new Sort())
.compare(4.0,3.0)
.result();
}
//对一个方法比较的重写
class Sort<Integer> implements Comparator<java.lang.Integer>{
public int compare(java.lang.Integer o1, java.lang.Integer o2) {
return -1;
}
}
}
Java,多个键做索引的时候,你可能会用类似Map<FirstName, Map<LastName, Person>>的实现,这种方式很丑陋,使用上也不友好。Guava为此提供了新集合类型Table,它有两个支持所有类型的键:”行”和”列”。
public class TableTest {
public static void main(String args[]){
ArrayTable<String, Integer, Character> table =
ArrayTable.create(asList("foo", "bar", "cat"), asList(1, 2, 3));
table.put("foo",1,'c');
System.out.println(table.get("foo",1));//result:c
}
}
对于用过的一些进行简单的记录