java项目中使用guava的工具包的心得
Posted 起个名字好难
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java项目中使用guava的工具包的心得相关的知识,希望对你有一定的参考价值。
原文:http://www. zuidaima.com/blog/3182745969511424.htm
以前只是听过这个工具包,但是真正用的话还是在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(); } }
还有很多功能还要自己去摸索学习,此处省略.............
以上是关于java项目中使用guava的工具包的心得的主要内容,如果未能解决你的问题,请参考以下文章
Java常用工具类汇总 2Google核心库GUAVA(附代码示例)
Java内存缓存工具实现 - Guava LoadingCache