工具类用得好,下班下的早
ApacheCommons
ApacheCommons是一个功能非常强大、经常被使用到的库。它有40个左右的类库,包含了对字符串、日期、数组等的操作。Lang3
Lang3是一个处理Java中基本对象的包,比如用StringUtils类操作字符串、ArrayUtils类操作数组、DateUtils类可以处理日期、MutablePair类可以返回多个字段等等。字符串操作
对字符串快速操作,在ifelse中少写判空条件。StringUtils。isBlank();是不是空字符串StringUtils。isAnyBlank(a,,c);其中一个是不是空字符串StringUtils。isNumeric(1);字符串是不是全是数字组成,。不算数字StringUtils。remove(sgsgsdfasd,a)移除字符串日期操作
终于可以不用SimpleDateFormat格式化日期了,DateUtils。iterator可以获取一段时间。DatedateDateUtils。parseDate(20210701,yyyyMMdd);DateUtils。addDays(date,1);加一天DateUtils。isSameDay(date,newDate());比较获取一段日期RANGEWEEKSUNDAY从周日开始获取一周日期RANGEWEEKMONDAY从周一开始获取一周日期RANGEWEEKRELATIVE从当前时间开始获取一周日期RANGEWEEKCENTER以当前日期为中心获取一周日期RANGEMONTHSUNDAY从周日开始获取一个月日期RANGEMONTHMONDAY从周一开始获取一个月日期IteratorCalendariteratorDateUtils。iterator(date,DateUtils。RANGEWEEKCENTER);while(iterator。hasNext()){Calendarnextiterator。next();System。out。println(DateFormatUtils。format(next,yyyyMMdd));}返回多个字段
有时候在一个方法中需要返回多个值的时候,经常会使用HashMap返回或者是JSON返回。Lang3下已经帮我们提供了这样的工具类,不需要再多写HashMap和JSON了。MutablePairInteger,StringmutablePairMutablePair。of(2,这是两个值);System。out。println(mutablePair。getLeft()mutablePair。getRight());MutableTripleInteger,String,DatemutableTripleMutableTriple。of(2,这是三个值,newDate());System。out。println(mutableTriple。getLeft()mutableTriple。getMiddle()mutableTriple。getRight());ArrayUtils数组操作
ArrayUtils是专门处理数组的类,可以让方便的处理数组而不是需要各种循环操作。合并数组String〔〕array1newString〔〕{value1,value2};String〔〕array2newString〔〕{value3,value4};String〔〕array3ArrayUtils。addAll(array1,array2);clone数组String〔〕array4ArrayUtils。clone(array3);数组是否相同EqualsBuilder。reflectionEquals(array3,array4);toStringArrayUtils。toString(array4)反转数组ArrayUtils。reverse(array4);二维数组转mapMapString,StringarrayMap(HashMap)ArrayUtils。toMap(newString〔〕〔〕{{key1,value1},{key2,value2}});for(Strings:arrayMap。keySet()){System。out。println(arrayMap。get(s));}collections4集合操作
commonscollections4增强了Java集合框架,提供了一系列简单的API方便操作集合。
maven依赖dependencygroupIdorg。apache。commonsgroupIdcommonscollections4artifactIdversion4。4versiondependencyCollectionUtils工具类
这是一个工具类,可以检查null元素不被加入集合,合并列表,过滤列表,两个列表的并集、差集、合集。有部分功能在Java8中可以被StreamAPI替换。null元素不能加进去ListStringarrayList1newArrayListString();arrayList1。add(a);CollectionUtils。addIgnoreNull(arrayList1,null);System。out。println(arrayList1。size());排好序的集合,合并后还是排序的ListStringarrayList2newArrayListString(){{add(a);add(c);add(x);}};ListStringarrayList3newArrayListString(){{add(b);add(d);add(f);}};ListStringarrayList4CollectionUtils。collate(arrayList2,arrayList3);System。out。println(arrayList4);过滤,只保留bCollectionUtils。filter(arrayList4,newPredicateString(){publicbooleanevaluate(Strings){if(s。equals(b)){returntrue;}returnfalse;}});交集CollectionUtils。retainAll(arrayList4,arrayList3);并集CollectionUtils。union(arrayList4,arrayList3差集CollectionUtils。subtract(arrayList4,arrayList3)Bag统计次数
用于统计值在集合中出现的次数。BagbagnewHashBagString();bag。add(a);bag。add(b);bag。add(a);bag。add(c,3);System。out。println(bag。getCount(a));beanutilsBean操作
beanutils是通过反射机制对JavaBean进行操作的。比如对Bean进行复制、map转对象、对象转Map。
maven依赖dependencygroupIdcommonsbeanutilsgroupIdcommonsbeanutilsartifactIdversion1。9。4versiondependencyBeanpublicclassUser{privateStringname;省略getset}copyBeanUseruser1newUser();user1。setName(李四);Useruser2(User)BeanUtils。cloneBean(user1);System。out。println(user2。getName());Bean转mapBeanUtils。describe(user1);Map转BeanMapString,StringbeanMapnewHashMap();beanMap。put(name,张三);Useruser3newUser();BeanUtils。populate(user3,beanMap);System。out。println(user3。getName());Guava
Google开源的一个基于Java扩展项目,包含了一些基本工具、集合扩展、缓存、并发工具包、字符串处理等。
maven依赖dependencygroupIdcom。google。guavagroupIdguavaartifactIdversion30。1。1jreversiondependencyMapString,List类型
在java代码中经常会遇到需要写MapString,Listmap的局部变量的时候。有时候业务情况还会更复杂一点。以前MapString,ListStringmapnewHashMapString,ListString();ListStringlistnewArrayListString();list。add(张三);list。add(李四);map。put(名称,list);System。out。println(map。get(名称));现在MultimapString,StringmultimapArrayListMultimap。create();multimap。put(名称,张三);multimap。put(名称,李四);System。out。println(multimap。get(名称));value不能重复的Map
在Map中value的值是可以重复的,Guava可以创建一个value不可重复的Map,并且Map和value可以对调。会报异常BiMapString,StringbiMapHashBiMap。create();biMap。put(key1,value);biMap。put(key2,value);System。out。println(biMap。get(key1));keyvalue对调biMapbiMap。inverse();System。out。println(biMap。get(value));缓存
写业务的时候肯定会使用缓存,当不想用第三方作为缓存的时候,Map又不够强大,就可以使用Guava的缓存。
使用CacheBuilder。newBuilder()。build()构建缓存,maximumSize()方法可以设置缓存的存储数量CacheString,StringcacheCacheBuilder。newBuilder()。maximumSize(2)。build();cache。put(key1,value1);cache。put(key2,value2);cache。put(key3,value3);System。out。println(cache。getIfPresent(key1));key1null过期时间
expireAfterAccess()可以设置缓存的过期时间。CacheString,StringcacheCacheBuilder。newBuilder()。maximumSize(2)。expireAfterAccess(1,TimeUnit。SECONDS)。build();cache。put(key1,value1);Thread。sleep(1000);System。out。println(cache。getIfPresent(key1));加载数据
当需要访问key1时,如果key1此时没有被缓存,就会从回调函数中加载key1的值。值得一提的是当多个线程同时访问的时候只有一个线程会执行回调函数。cache。get(key1,newCallableString(){publicStringcall()throwsException{returnvalue1;}});System。out。println(cache。getIfPresent(key1));
Guava有许许多多的工具类,这里只列出了小小的部分,可以在官网例子中查看到各种用法。总结
通过ApacheCommons和Guava两个第三方的开源工具库,可以让减少循环、ifelse的代码。写出的代码更有健壮性并且可以在新人面前装一波。
人世间郝冬梅不孕原因,人世间郝冬梅扮演者都市剧《人世间》中隋俊波出演郝冬梅表现温柔文雅和善解人意的情况,并她总带着一副好脾气的样子,却她做为周秉义的妻子,因她原来去水井打水时不慎跌落井中,之后救上来后去医院检查就产生……
比亚迪e平台升级3。0四位一体,全方位满足客户需求金秋9月,比亚迪全力打造的e平台3。0终于与各位车粉们见面。在e平台3。0发布之时,比亚迪集团的董事长王传福就在会上对这一平台的未来发展进行了展望。他认为这一平台是比亚迪从新能……
孙艺珍经典爱情片孙艺珍最火的5部电影孙艺珍经典爱情片:孙艺珍最火的5部电影孙艺珍出生于1982年1月11日,18岁的时候就考上汉城艺术大学电影系,2000年开始正式出道,因为其出众的外貌和特有的文艺气质,很……
CPSIA报告,ASTM报告和亚马逊CPC证书关系区别很多人知道亚马逊要求提供CPC,却不知道ASTM跟CPSIA是什么东西?CPSC:ConsumerProductSafetyCommission,消费品安全委员会;……
显示器连接线ROHS认证显示器连接线有3种HDMI连接线、VGA连接线、DVI连接线。2015年6月4日,欧盟在其公报上发布指令(EU)2015863对201165EU(RoHS2。0)进行修订……
小米12系列或首发2亿像素主摄,有望在年底亮相近年来,小米凭借小米10系列以及小米11系列等旗舰机型,逐渐站稳了高端市场。根据往年惯例,不出意外的话,小米有望在今年底推出全新的小米12系列机型。现在有最新消息,继此前业内开……
三星GalaxyM22A12s手机通过多项认证,将搭载HelIT之家7月7日消息据外媒GSMArena消息,三星GalaxyM22A12s手机近日通过了蓝牙组织以及泰国NBTC等多项认证,意味着手机将于近期正式发布。GalaxyM22手……
龙岭迷窟了尘大师结局怎么死的了尘大师和鹧鸪哨是什么关系近日,网剧《鬼吹灯之龙岭迷窟》正在热播当中,在这部剧当中的最新剧情中,了尘大师死在了黑水城,《龙岭迷窟》了尘大师结局怎么死的?了尘大师和鹧鸪哨是什么关系?一起来看一下。1龙岭迷……
龙岭迷窟托马斯是好是坏托马斯真实身份及结局是什么近段时间一直热播的网剧《龙岭迷窟》颇受大家的关注,其中在剧中出现的托马斯引起了大家的注意,托马斯到底是好是坏呢?托马斯真实身份及结局是什么?一起来看一下具体的情况。1龙岭迷窟托……
龙岭迷窟脏东西是什么鬼眼诅咒要怎么才能解除近段时间以来,网剧《鬼吹灯之龙岭迷窟》正在热播当中,其中在剧中王胖子口中的脏东西究竟是什么呢?剧中所说的鬼眼诅咒要怎么才能解除?一起来看一下具体的内容。1龙岭迷窟脏东西是什么……
龙岭迷窟陈瞎子为什么帮胡八一陈瞎子的真实身份是陈玉楼吗近日,电视剧《龙岭迷窟》又更新了三集,在之前的剧中当中胡八一遇到了陈瞎子,并且得到了陈瞎子的帮助,那么,陈瞎子为什么要帮胡八一呢?陈瞎子的真实身份是什么?是陈玉楼么?一起来看一……
删除字符串的指定字符题目描述编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串s……