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的工具包的心得的更多相关文章
- ckeditor编辑器在java项目中配置
一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...
- 实战派 | Java项目中玩转Redis6.0客户端缓存!
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- java项目中build path的设置
右键点击项目新建文件libs 添加jtds jar包引用本地动态链接库(dll)的设置方法 配置LibraryJRE的添加和更换 Java项目中build path的设置总结,包括JRE的添加和更 ...
- 在Java项目中整合Scala
Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...
- XML在JAVA项目中的作用
java项目中,xml文件一般都是用来存储一些配置信息 一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重 ...
- redis在java项目中的使用
在上一篇文章中已经讲了redis的spring配置,这篇将会描述redis在java项目中的使用. redis存储形式都是key-value(键值对),按照存储的内容分为两种,一种是存简单数据,即数字 ...
- Redis学习笔记之二 :在Java项目中使用Redis
成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...
- SuperDiamond在JAVA项目中的三种应用方法实践总结
SuperDiamond在JAVA项目中的三种应用方法实践总结 1.直接读取如下: @Test public static void test_simple(){ PropertiesConfigur ...
随机推荐
- Android RIL Log
转载: 要调试 RIL,最好的方法就是打开 radio的log: $ adb logcat -b radio 最好加上 log语法亮度工具coloredlogcat.py ,一些常见的LOG TAG要 ...
- padding当高度用时出现的问题
<div class="wrap"> <div class="sudoku"> <div class="sdk-wrap ...
- HTTP SOAP Request
public string SoapRequest(string url, string message, string type, Encoding encoding) { string resul ...
- MyBatis 批量修改记录
<insert id="update" parameterType="java.util.List"> UPDATE setting SET con ...
- stm32菜单按键的设计
有点懒.看注释吧 // k0,enter/enable;k3:esc/disable// k1,value+/menu+;k2:menu-/value-; #include "sysmenu ...
- applicationContext.xml 配置(扫描)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- js通过keyCode值判断单击键盘上某个键,然后触发指定的事件
当单击按键时触发事件 document.onkeydown = function (e) { e = e || event; if (e.keyC ...
- Chapter 2 Open Book——8
But as far as I could tell, life worked that way most of the time. 但是即使我这么说,生活大多数时间还是这样的. 但就我所能告诉你的, ...
- Fine Uploader 简单配置方法
由于jquery.uploadify是基于flash的jquery上传控件,客户老是说出问题,所以今天换成了一个纯js的异步上传控件. 这方面的资料很少,故此记下来分享一下. 项目地址:Fine Up ...
- Boxes in a Line(移动盒子)
You have n boxes in a line on the table numbered 1 . . . n from left to right. Your task is to sim ...