1、简介
传送门:Hutool官网
Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(官网摘抄)
2、前言
之前一直觉得java8的stream操作集合的写法很麻烦,之后在《java8实战》一书中了解到了作者的lambdaj和谷歌的guava,因此我就瞄上了guava,准备使用它,一番百度之后却发现了Hutool这个宝藏工具,功能多,API文档完善(作者是中国人),相比guava就很舒服了,码云star11K。
3、学习使用
因为刚接触使用,所以只列举自己使用到的功能,之后学习了再继续补充。
3.1 集合操作
我发现的Hutool使用的最大问题就是API过于冗余了,比如集合工具类就有CollUtil、IterUtil和ListUtil,里面重复的 方法比较多,要简单有效的使用,还是要好好研究的。IterUtil里的方法比CollUtil的方法新,但是CollUtil里的方法更多
3.1.1 创建List集合(CollUtil.newArrayList
)
1 | List<User> userList = CollUtil.newArrayList( |
3.1.2 map映射集合(CollUtil.map
)
1 | //方法一(第三个参数为true会过滤掉null): 返回结果: [zhangsan, lisi] |
个人喜欢第一种写法,比较接近原生的形式,如果选择后两者,注意别把字段名弄错了。
3.1.3 join拼接字符串(CollUtil.join
)
1 | // zhangsan,lisi,wangwu |
3.1.4 filter筛选集合(IterUtil.filter
)
1 | // 方法一 [User{userName='lisi', age=19, sex='woman'}] |
我选择了第一种写法,方便。
3.1.5 分组集合(IterUtil.toListMap
)
1 | // 方法一:分组后返回的是嵌套的列表 |
但是我找了半天没找到stream里分组算个数的方法,留个java8的写法
1 | Map<String, Long> collect = userList.stream().collect(Collectors |
3.1.6 排序集合(IterUtil.toListMap
)
1 | List<User> sort = CollUtil.sort(userList, Comparator.comparing(User::getAge).reversed()); |
3.2 打印操作
可以使用{}占位符,参数放入对象,打印的也不是地址值,重写了toString()方法。
1 | Console.log("集合组装的字符串{}", join); |
之后使用了再继续补充
- 本文作者: tenyears
- 本文链接: https://tenyears94.gitee.io/2020/08/22/Hutool不糊涂/
- 版权声明: 本博客所有文章转载请注明出处!