木头人的gravatar头像
木头人 2016-12-30 18:39:32
java项目中使用guava的工具包的心得

   以前只是听过这个工具包,但是真正用的话还是在D75需求中。我要实现把前台传入的list集合用分号分割拼接一个字符串存入数据库,

开始的时候我用代码逻辑如下:

StringBuffer interfaceList=new StringBuffer();

//判断前台绑定中的集合是否为空

if(interfaces!=null)

{

     for(String str:interfaces){

          interfaceList.append(str).append(";");

    }

//去掉最后一个分号

    tpc.setInterfaces(interfacesStr.subStrting(0,interfaceList.length()-1);

}

感觉这里使用了stringbuffer就没问题了吧,然后hery对我说代码还可以压缩,我就看了下apache的StringUtils这个类和google的guava包下

的Joiner这个类。我才发现这样的工具包真的好强大,封装了好多功能,学习是永无止境的。上面的代码只需要写一句就替代了:

String interfacesStr=StringUtils.join(interfaces.iterator(), ';');或者String interfacesStr= Joiner.on(";").join(interfaces.iterator());

有时候我们这样写:

Person person1=new Person("jack",20);

Person person2=new Person("jack",20);

Person person2=new Person("jack",20);

//会去这样存入list集合:

List<Person> personList=new ArrayList<Person>();

personList.add(person1);

personList.add(person2);

personList.add(person3);

在guava中可以这样:List<Person> list = Lists.newArrayList(person1, person2, person3);当然也可以这样Arrays.asList(person1, person2, person3);

在比较对象大小的时候都知道有两种方式:

1.实体类实现Conparable接口;2.在Collections.sort()实现Comparator接口

在guava中的对象比较,实现的Comparator可以这样写:

new Comparator<Person>() {

            @Override

            public int compare(Person o1, Person o2) {

                return ComparisonChain.start().compare(o1.getName(), o2.getName()).compare(o1.getAge(), o2.getAge())

                        .result();

            }

}

还有很多功能还要自己去摸索学习,此处省略.............

分享到:

最近浏览
微微上翘 3月22日
最代码贡献等级说明
foolbird 3月17日
暂无贡献等级
沐宇熙 3月3日
最代码贡献等级说明
暂无贡献等级
孟飞阳 2月19日
暂无贡献等级
李先森 LV1 2月16日
最代码贡献等级说明
neverhide 2月14日
暂无贡献等级
ding1336610127 2月7日
最代码贡献等级说明
shengke 2月6日
最代码贡献等级说明
xa_zbl 1月19日
最代码贡献等级说明
chengqiang 1月17日
最代码贡献等级说明
liu19900205 1月17日
暂无贡献等级
三带一 LV2 1月17日
最代码贡献等级说明
a380387084 1月16日
暂无贡献等级
Simplen 1月16日
最代码贡献等级说明
FunnyKing 1月15日
最代码贡献等级说明
ok-wap 1月15日
最代码贡献等级说明
2230300 1月12日
最代码贡献等级说明
iopjkl 1月11日
最代码贡献等级说明
xdd211414 1月11日
最代码贡献等级说明
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友