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

            }

}

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

分享到:

最近浏览
金仁杰5月5日
暂无贡献等级
winamy4月26日
暂无贡献等级
zhouxinming4月17日
暂无贡献等级
lvcai884月13日
最代码贡献等级说明
微微上翘3月22日
最代码贡献等级说明
foolbird3月17日
暂无贡献等级
沐宇熙3月3日
最代码贡献等级说明
暂无贡献等级
孟飞阳2月19日
暂无贡献等级
李先森 LV12月16日
最代码贡献等级说明
neverhide2月14日
暂无贡献等级
shengke2月6日
最代码贡献等级说明
xa_zbl1月19日
最代码贡献等级说明
chengqiang1月17日
最代码贡献等级说明
liu199002051月17日
暂无贡献等级
三带一 LV21月17日
最代码贡献等级说明
a3803870841月16日
暂无贡献等级
Simplen1月16日
最代码贡献等级说明
FunnyKing1月15日
最代码贡献等级说明
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友