木头人的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();

            }

}

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


打赏

分享到:

最近浏览
203778513 LV92017年9月13日
月亮月亮星星
lanmaokyle LV22017年8月8日
星星星星
金仁杰 LV22017年5月5日
星星星星
winamy LV12017年4月26日
星星
zhouxinming LV32017年4月17日
星星星星星星
lvcai88 LV42017年4月13日
月亮
微微上翘 LV232017年3月22日
太阳月亮星星星星星星
foolbird2017年3月17日
暂无贡献等级
沐宇熙 LV122017年3月3日
月亮月亮月亮
20冰是睡着的水 LV22017年2月20日
星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友