Hutool工具集之常用工具类详解使用(一)

1.序言

前些日子介绍了Hutool工具集之DateUtil(日期时间工具)详解使,这个工具类算是很常用也很实用的了,继而接着在看Hutool工具集的内容,今天给大家介绍几个常用工具类和好玩的工具类。

2.比较常用工具类

1)数组工具-ArrayUtil

public static void main(String[] args) {
        int[] a = {};
        int[] b = null;
        //判空:true
        boolean empty = ArrayUtil.isEmpty(a);
        boolean empty1 = ArrayUtil.isEmpty(b);
        int[] c = {1,2};
        //判非空:true
        boolean notEmpty = ArrayUtil.isNotEmpty(c);

        //新建一个大小为5的字符串数组
        String[] strings = ArrayUtil.newArray(String.class, 5);

        //获取数组对象的元素类型
        Class<?> componentType = ArrayUtil.getComponentType(strings);

        //根据数组元素类型,获取数组的类型
        Class<?> arrayType = ArrayUtil.getArrayType(componentType);

        //强转数组类型
        ArrayUtil.cast(Integer.class, strings);

        //将新元素添加到已有数组中
        //添加新元素会生成一个新的数组,不影响原数组
        ArrayUtil.append(c, 3, 4);

        //将新元素插入到到已有数组中的某个位置
        //添加新元素会生成一个新的数组,不影响原数组
        //如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充
        ArrayUtil.insert(c, 5, 5, 6, 7);

        //采用可变参数方式,将多个泛型数组合并为一个数组。
        String[] str = {"a","b"};
        String[] addAll = ArrayUtil.addAll(strings, str);

        //数组克隆
        int[] clone = ArrayUtil.clone(c);

        //该方法有三个重载,这三个重载配合可以实现支持步进的有序数组或者步进为1的有序数组
        ArrayUtil.range(6,123);

        //过滤数组,只保留偶数
        Integer[] d = {1,2,3,4,5,6};
        Integer[] filter = ArrayUtil.filter(d, new Editor<Integer>() {
            public Integer edit(Integer t) {
               return  (t % 2 == 0) ? t : null;
            }
        });

        //ArrayUtil.contains方法只针对泛型数组,检测指定元素是否在数组中。

        //ArrayUtil.wrap和ArrayUtil.unwrap对原始类型数组和包装类型数组进行转换。

        //ArrayUtil.isArray方法封装了obj.getClass().isArray()。

        /*ArrayUtil.join 方法使用间隔符将一个数组转为字符串,比如[1,2,3,4]这个数组转为字符串,
        间隔符使用“-”的话,结果为 1-2-3-4,join方法同样支持泛型数组和原始类型数组。*/
    }

2)图片工具-ImageUtil

①介绍

针对awt中图片处理进行封装,这些封装包括:缩放、裁剪、转为黑白、加水印等操作。

②方法

scale 缩放图片,提供两种重载方法:其中一个是按照长宽缩放,另一种是按照比例缩放。
cut 剪裁图片
cutByRowsAndCols 按照行列剪裁(将图片分为20行和20列)
convert 图片类型转换,支持GIF->JPG、GIF->PNG、PNG->JPG、PNG->GIF(X)、BMP->PNG等
gray 彩色转为黑白
pressText 添加文字水印
pressImage 添加图片水印
rotate 旋转图片
flip 水平翻转图片

③补充

本来准备都举个栗子的,可是有点多,就官网copy了,官网在上一篇文章已经有链接,再给大家一个API文档链接,毕竟官网和我这都不是最全的,希望对大家的学习有帮助!

3)随机工具-RandomUtil

①介绍

RandomUtil主要针对JDK中Random对象做封装,产生的随机结果是伪随机结果。不过这种随机结果对于大多数情况已经够用。

②方法

RandomUtil.randomInt 获得指定范围内的随机数
RandomUtil.randomBytes 随机bytes
RandomUtil.randomEle 随机获得列表中的元素
RandomUtil.randomEleSet 随机获得列表中的一定量的不重复元素,返回Set
RandomUtil.randomString 获得一个随机的字符串(只包含数字和字符)
RandomUtil.randomNumbers 获得一个只包含数字的字符串
RandomUtil.randomUUID 随机UUID
RandomUtil.weightRandom 权重随机生成器,传入带权重的对象,然后根据权重随机获取对象

4)对象工具-ObjectUtil

5)字符串工具-StrUtil

6)集合工具 CollUtil

7)Map工具-MapUtil

8)Bean工具-BeanUtil

9)JSONUtil

写了才知道,要是每个工具类都举例实在是太多了,我一期也一下子出不完,分期给大家展示吧,自己也能有时间吸收好了再写!


版权声明:本文为Eric__JY原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。