1.hashcode计算及对象比较:Objects.hashCode(),ComparisonChain链式比较
@Override
public int hashCode() {
return Objects.hashCode(id,name,type);
}
@Override
public int compareTo(Program o) {
int result = ComparisonChain.start()
.compare(this.name, o.getName())
.compare(this.id, o.getId())
.compare(this.type, o.getType())
.result();
return result;
}
2.List与字符串互相转换
List<String>list= ImmutableList.of("1","2","3","4");
String concat=Joiner.on(",").join(list);
//输出1,2,3,4
String split="this is an split string ";
List<String>splitList=Splitter.on(" ").omitEmptyStrings().trimResults().splitToList(split);
//输出[this,is,an,split,string]
实例1:在list中查找某个对象
Program p = Iterables.filter(programList, new Predicate<Program>() {
@Override
public boolean apply(Program program) {
return program.getName().equals(name);
}
}).iterator().next();
实例2:提取list中对象的属性值list
Iterable<String>nameIt=Iterables.transform(programList, new Function<Program, String>() {
@Override
public String apply(Program program) {
return program.getName();
}
});
List<String>nameList=Lists.newArrayList(nameIt);