Java实用的工具

Posted 小郑要做干饭人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实用的工具相关的知识,希望对你有一定的参考价值。

一. 集合工具类

快速初始化集合:

调用的是谷歌提供的依赖:

<dependency>
     <groupId>com.google.guava</groupId>
     <artifactId>guava</artifactId>
     <version>28.1-jre</version>
</dependency>
ArrayList<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
        for (Integer integer : list) 
            System.out.println(integer);
        
//之前往list集合中添加数据的时候调用的是add()进行赋值的,与此方法相比,是不是大大缩减的无用的代码        

运行的结果如下:

集合分页:

        ArrayList<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
		//partition(): 集合分页(参数一:需要分页的集合,参数二:每页的数据长度)
        List<List<Integer>> partition = Lists.partition(list, 5);
        System.err.println(partition);

执行结果如下:

二. 加密工具类

需要引入工具包依赖:

    <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
         <version>2.6</version>
     </dependency>

废话少说上代码:

		// md2Hex(): MD5加密
        String MD5 = DigestUtils.md2Hex("123");
        System.out.println("MD5加密后的结果: " + MD5);

        // sha256Hex(): sha'安全哈希算法' 加密
        String sha256Hex = DigestUtils.sha256Hex("123");
        System.out.println("sha256加密后的结果: " + sha256Hex);
        /**
          * 因为平时用到的加密方式不多,因此更多的用法就请大家自己去探索了~~~
          */

运行的结果如下:

三. 字符串处理工具

同上,需要引入相应的依赖包:

		<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

1. 字符串判空:

方案一:

        String str = " ";
        boolean notBlank = StringUtils.isNotBlank(str);
        boolean blank = StringUtils.isBlank(str);

        System.out.println("isNotBlank判断str是否不为空? " + notBlank);
        System.out.println("isBlank判断str是否为空? " + blank);

运行的结果如下:

方案二:

		String str = " ";
		boolean notEmpty = StringUtils.isNotEmpty(str);
        boolean empty = StringUtils.isEmpty(str);

        System.out.println("isNotEmpty判断str是否不为空? " + notEmpty);
        System.out.println("isEmpty判断str是否为空? " + empty);

运行的结果如下:

虽然方案一和方案二运行结果一致,但是还是推荐使用例一,因为isBlank()和isNotBlank()方法会把空字符串也考虑进去。

2. 字符串分割:

 		//split(): 分割字符串
        String str1 = "1,2,3,4,5";
        String[] split = StringUtils.split(str1);
        System.out.println("分割后的字符串:" + Arrays.toString(split));
        /*相较于 String 的 split 方法来说,StringUtils 的 split 方法不会有空指针异常*/

运行的结果如下:

3. 判断字符串是否为纯数字:

		//isNumeric(): 判断是否为纯数字
        String str2 = "1";
        boolean numeric = StringUtils.isNumeric(str2);
        System.out.println("str2是否为数字: " + numeric);

运行的结果如下:

四. 集合处理工具

1. Java自带的工具包

一. 排序:

		//sort() | reverse(): 排序
        ArrayList<Integer> list1 = Lists.newArrayList(1, 3, 5, 7, 9, 2, 4, 5, 8, 10, 12, 11);
        Collections.sort(list1); //升序
        System.out.println("sort(升序)排序的结果为: " + list1);

        Collections.reverse(list1); //降序
        System.out.println("reverse(降序)排序的结果为: " + list1);

运行的结果如下:

二. 获取最大值最小值:

		//max() | min():获取最大/最小值
        ArrayList<Integer> list2 = Lists.newArrayList(1, 11, 111, 222, 1, 558, 195);
        Integer max = Collections.max(list2);
        Integer min = Collections.min(list2);
        System.out.println("获取到list2中最大的值为: " + max);
        System.out.println("获取到list2中最小的值为: " + min);

运行的结果如下:

三. 将集合转换为线程安全的集合:

		ArrayList<Integer> list2 = Lists.newArrayList(1, 11, 111, 222, 1, 558, 195);
		//synchronizedList(): 转换线程安全集合
        List<Integer> list3 = Collections.synchronizedList(list2);

2. Apache提供的聚合处理工具:

首先导入依赖

  		<dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>

1. 判断集合是否为空:

		//isNotEmpty(): 集合判空
        ArrayList<String> list4 = Lists.newArrayList("张三", "李四", "王五");
        boolean notEmpty1 = CollectionUtils.isNotEmpty(list4);
        System.out.println("集合不是空的吗? " + notEmpty1);

运行的结果如下:

2. 判断集合的交并补差集:

		//intersection()/union()/disjunction()/subtract(): 获取集合的交并不差集
        ArrayList<Integer> list5 = Lists.newArrayList(1, 2, 3, 4);
        ArrayList<Integer> list6 = Lists.newArrayList(1, 2, 3, 5);

        Collection intersection = CollectionUtils.intersection(list5, list6);
        System.out.println("获取到两集合的交集为: " + intersection);

        Collection union = CollectionUtils.union(list5, list6);
        System.out.println("获取到两集合的并集为: " + union);

        Collection disjunction = CollectionUtils.disjunction(list5, list6);
        System.out.println("获取到两集合的补集为: " + disjunction);

        Collection subtract = CollectionUtils.subtract(list5, list6);
        System.out.println("获取到两集合的差集为: " + subtract);

运行的效果如下:

以上是关于Java实用的工具的主要内容,如果未能解决你的问题,请参考以下文章

明哥工具箱数组升序和降序

Java中对数组升序排列用Arrays.sort( )方法,那降序排列用啥方法?

java Collections.sort实现的排序是升序还是降序

怎么看出 Java 的 Comparator是升序还是降序

JAVA使用Arrays.sort()升序和降序

JAVA使用Arrays.sort()升序和降序