该工程主要用以学习Guava
工具包的常用功能
该工程是以jdk1.8
为版本的代码,所以lambda
表达式会大量的出现。如果自己的工程是jdk1.8
以下的,请自行把lambda
表达式恢复为原有样式。
下面列举自我感觉比较常用的功能
com.littlefisher.guava.base.CaseFormatTest
具体使用请参考模块代码
com.littlefisher.guava.base.ObjectsTest
在jdk1.7
及以后的版本,可以使用java.util.Objects.equals
方法进行代替
但是在做对象判空时,不太建议使用该方法
com.littlefisher.guava.base.SplitterTest
比较于jdk
提供的split
方法而言,该类分隔的更彻底一些。使用jdk
提供的split
方法,有时会莫名其妙的少些字符串。并且该Splitter
类可以直接拆分成List
集合,并做去重操作,而split
方法返回的是数组。
com.littlefisher.guava.base.StringsTest
字符串补前缀
字符串补后缀
字符串前补齐某个字符
例如10
,需要补齐成6
个字符长度的000010
字符串后补齐某个字符,跟上面的类似
com.littlefisher.guava.collect.BiMapTest
一般的Map
都是根据key
查找到value
,这个Map
可以根据value
查找到key
业务侧已有是用到,key
和value
分别是userId
和resourceId
Maps.newHashMap()
Lists.newArrayList()
Sets.newHashSet()
Lists.newLinkedList()
Maps.newHashMap()
这些都是业务代码里使用Guava
最多的代码了
com.littlefisher.guava.collect.CollectionTest
com.littlefisher.guava.collect.IteratorsTest
返回一个boolean
值,校验集合是否都满足一个条件
返回一个boolean
值,校验集合是否存在一个元素满足条件的
举个例子,查询productDetail
后,校验返回的合同列表中是否有授信合同模板
返回下标位置的元素。如果仅这一个功能的话,跟集合直接调用get
方法没什么区别,最主要的是该方法重载了一个方法,可以传入一个默认值,如果下标越界,会返回默认值
对集合进行元素过滤,返回一个过滤后的集合Iterator
。Iterator
可以通过Lists.newArrayList()
转为集合。
在集合中查找满足条件的元素。该方法也有重载方法,可以设置默认值,否则会抛异常。
根据当前构造一个子集合,例如原集合是List<CreditCreditApply>
,而需要构造出来List<String>
,其中都是creditApplyId
。即可使用该方法。
根据条件删去集合中的元素。for
循环中是不能直接删除元素的,否则会抛异常。但是可以使用该方法进行替换,其底层实现就是使用迭代器处理的。
com.littlefisher.guava.collect.MultiMapTest
正常情况下,Map
中key
都是唯一的。而使用Multimap
,当做put
操作时,如果key
已存在,则value
会成为一个集合。
com.littlefisher.guava.io.FilesTest
文件写入。入参为byte
数组和写入文件File
对象
按行读取文件,返回值为List<String>
该方法具体参考代码,有可以记录行号的,也有可以一次性读取所有内容的。
文件复制
校验两个文件的文本内容是否相同
递归创建父目录
获取文件扩展名
获取不带扩展名的文件名