Java基础类之ArrayUtils工具类详解

目录
  • 1、引入pom依赖
  • 2、ArrayUtils中的方法:
  • 3、举例
  • 总结

1、引入pom依赖

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

2、ArrayUtils中的方法:

1.add():将给定的数据添加到指定的数组中,返回一个新的数组。

2.addAll():合并两个数组。

3.contains():检查该数据在该数组中是否存在,返回一个boolean值。

4.getLength():返回该数组长度。

5.indexOf():从数组的第一位开始查询该数组中是否有指定的数值,存在返回index的数值,否则返回-1。

6.lastIndexOf():从数组的最后一位开始往前查询该数组中是否有指定的数值,存在返回index的数值,否则返回-1。

7.Insert():向指定的位置往该数组添加指定的元素,返回一个新的数组。

8.isEmpty():判断该数组是否为空,返回一个boolean值。

9.isNotEmpty():判断该数组是否为空,而不是null。

10.isSameLength():判断两个数组的长度是否一样,当数组为空视长度为0。返回一个boolean值。

11.isSameType():判断两个数组的类型是否一样,返回一个boolean值。

12.isSorted():判断该数组是否按照自然排列顺序排序,返回一个boolean值。

13.nullToEmpty():

14.remove():删除该数组指定位置上的元素,返回一个新的数组。

15.removeAll():删除指定位置上的元素,返回一个新的数组。

16.removeAllOccurences():从该数组中删除指定的元素,返回一个新的数组。

17.removeElement():从该数组中删除第一次出现的指定元素,返回一个新的数组。

18.removeElements():从该数组中删除指定数量的元素,返回一个新的数组。

19.reverse():数组反转。也可以指定开始和结束的反转位置。

20.subarray():截取数组(包头不包尾),返回一个新的数组。

21.swap():指定该数组的两个位置的元素交换或者指定两个位置后加len的长度元素进行交换。

22.toMap():将数组转换成Map,返回一个map的Object的集合。

23.toObject():将原始数据类型的数组转换成对象类型数组。

24.toPrimitive():将对象类型数组转换成原始数据类型数组。

25.toString():将数组输出为Stirng,返回一个字符串。

26.toStringArray():将Object数组转换为String数组类型。

3、举例

public class ArraryTest {
    public static void main(String[] args) {
        int []array={4,5,9};
        //add()添加方法结果为:{4,5,9,6}
        int[] newArray=ArrayUtils.add(array, 6);
        System.out.println(ArrayUtils.toString(newArray));
        //addAll()方法,结果为:{4,5,9,5,9,6,7}
        int []arrayAll={4,5,9};
        int[] newArrayAll=ArrayUtils.addAll(arrayAll,5,9,6,7);
        System.out.println(ArrayUtils.toString(newArrayAll));
        //contains():结果为:true、false
        System.out.println(ArrayUtils.contains(arrayAll, 9));
        System.out.println(ArrayUtils.contains(arrayAll, 3));
        //getLength():结果为3
        System.out.println(ArrayUtils.getLength(arrayAll));
        //indexOf():2。
        //indexOf(newArrayAll, 9,3):3是指定从哪一位开始查找,返回结果4
        System.out.println(ArrayUtils.indexOf(newArrayAll, 9));
        System.out.println(ArrayUtils.indexOf(newArrayAll, 9,3));
        //lastIndexOf()返回结果是4、2
        System.out.println(ArrayUtils.lastIndexOf(newArrayAll, 9));
        System.out.println(ArrayUtils.lastIndexOf(newArrayAll, 9,3));
        //insert():结果为{4,5,3,9}
        int [] arr=ArrayUtils.insert(2, arrayAll, 3);
        System.out.println("insert"+ArrayUtils.toString(arr));
        //isEmpty():结果为false、true
        int []a=null;
        System.out.println(ArrayUtils.isEmpty(arr));
        System.out.println(ArrayUtils.isEmpty(a));
        //isNotEmpty():结果是false、true
        System.out.println("isNotEmpty:"+ArrayUtils.isNotEmpty(a));
        System.out.println("isNotEmpty:"+ArrayUtils.isNotEmpty(arr));
        //isSorted():结果为false和true
        int[]sort1={5,6,9,1};
        int [] sort2={1,6,8,9};
        System.out.println("sort1:"+ArrayUtils.isSorted(sort1));
        System.out.println("sort2:"+ArrayUtils.isSorted(sort2));
        //remove():返回结果为{5,6,1}
        int [] newRe=ArrayUtils.remove(sort1, 2);
        for(int nr:newRe){
            System.out.print(nr);
        }
        //reverse():返回new reverse:{1,9,6,5}
        ArrayUtils.reverse(sort1);
        System.out.println("new reverse:"+ArrayUtils.toString(sort1));
        //subarray():返回结果subarray:{3,9}
        int[] sub={7,5,3,9,8,4};
        int [] newsub=ArrayUtils.subarray(sub, 2, 4);
        System.out.println("subarray:"+ArrayUtils.toString(newsub));

        Object[] subs={7,5,3,9,8,4};
        Map<Object, Object>map=ArrayUtils.toMap(subs);
    }
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • java 如何计算同比增长工具类

    java 计算同比增长工具类 为了数据的严谨性,统一装换为BigDecimal,话不多说,看代码. package com.pig4cloud.pigx.admin.api.util; import java.math.BigDecimal; public class PercentCount { public String percentBigDecimal(BigDecimal preNum,BigDecimal sufNum){ double result = countDecimal(p

  • Java并发工具类Exchanger的相关知识总结

    一.Exchanger的理解 Exchanger 属于java.util.concurrent包: Exchanger 是 JDK 1.5 开始提供的一个用于两个工作线程之间交换数据的封装工具类; 一个线程在完成一定的事务后想与另一个线程交换数据,则第一个先拿出数据的线程会一直等待第二个线程,直到第二个线程拿着数据到来时才能彼此交换对应数据. 二.Exchanger类中常用方法 public Exchanger() 无参构造方法.表示创建一个新的交换器. public V exchange(V

  • java并发编程工具类JUC之ArrayBlockingQueue

    Java BlockingQueue接口java.util.concurrent.BlockingQueue表示一个可以存取元素,并且线程安全的队列.换句话说,当多线程同时从 JavaBlockingQueue中插入元素.获取元素的时候,不会导致任何并发问题(元素被插入多次.处理多次等问题). 从java BlockingQueue可以引申出一个概念:阻塞队列,是指队列本身可以阻塞线程向队列里面插入元素,或者阻塞线程从队列里面获取元素.比如:当一个线程尝试去从一个空队列里面获取元素的时候,这个线

  • java并发编程工具类JUC之LinkedBlockingQueue链表队列

    java.util.concurrent.LinkedBlockingQueue 是一个基于单向链表的.范围任意的(其实是有界的).FIFO阻塞队列.访问与移除操作是在队头进行,添加操作是在队尾进行,并分别使用不同的锁进行保护,只有在可能涉及多个节点的操作才同时对两个锁进行加锁. 队列是否为空.是否已满仍然是通过元素数量的计数器(count)进行判断的,由于可以同时在队头.队尾并发地进行访问.添加操作,所以这个计数器必须是线程安全的,这里使用了一个原子类 AtomicInteger,这就决定了它

  • Java并发编程之工具类Semaphore的使用

    一.Semaphore的理解 Semaphore属于java.util.concurrent包: Semaphore翻译成字面意思为信号量,Semaphore可以控制同时访问的线程个数,通过acquire()获取一个许可,如果没有就等待,而release()释放一个许可. 二.Semaphore类中常用方法 public void acquire() 用来获取一个许可,若无许可能够获得,则会一直等待,直到获得许可. public void acquire(int permits) 获取permi

  • Java基础类之ArrayUtils工具类详解

    目录 1.引入pom依赖 2.ArrayUtils中的方法: 3.举例 总结 1.引入pom依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <

  • java中DateUtils时间工具类详解

    本文实例为大家分享了DateUtils时间工具类的具体代码,供大家参考,具体内容如下 package com.example.administrator.myapp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Date 工具类 * Created by lychun on 2017/12/07

  • java中文转拼音工具类详解

    本文实例为大家分享了java中文转拼音工具类的具体代码,供大家参考,具体内容如下 import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import net.sourceforge.

  • java数字转汉字工具类详解

    本文实例为大家分享了java数字转汉字工具类的具体代码,供大家参考,具体内容如下 /** * Created by 33303 on 2017/7/28. */ import java.math.BigDecimal; /** * 数字转换为汉语中人民币的大写<br> * */ public class NumberToCN { /** * 汉语中数字大写 */ private static final String[] CN_UPPER_NUMBER = { "零", &

  • java转树形结构工具类详解

    本文实例为大家分享了java转树形结构工具类的具体代码,供大家参考,具体内容如下 import com.alibaba.fastjson.JSON; import lombok.Data; import lombok.ToString; import org.springframework.util.ReflectionUtils; import org.springframework.util.StringUtils; import java.lang.reflect.Field; impor

  • Java身份证号码校验工具类详解

    本文实例为大家分享了Java身份证号码校验工具类的具体代码,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.regex.Pattern; public class IdcardVa

  • Java TimedCache 带时间缓存工具类详解使用

    简述 我们在工作中会碰到需要使用带过期时间的缓存场景.但是使用redis有太重了,毕竟缓存的数据很小,放在内存够够的.hutools提供了TimedCache时间缓存工具,可以实现该场景.下面使用到该组件,并为了适配工作场景,对该工具类做优化升级. Maven依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>

  • Java项目常见工具类详解

    目录 JWT工具类 MD5工具类 视频点播工具类 公共常量工具类 日期操作工具类 Http客户端工具类 获取IP工具类 JWT工具类 这里一共涉及四个方法: 传入用户信息获得token 传入token字符串判断token是否存在与有效 传入HttpServletRequest,通过获取Header中的token判断是否存在与有效 根据token获取用户id public class JwtUtils { //token过期时间 public static final long EXPIRE =

  • Java并发编程之Executors类详解

    一.Executors的理解 Executors类属于java.util.concurrent包: 线程池的创建分为两种方式:ThreadPoolExecutor 和 Executors: Executors(静态Executor工厂)用于创建线程池: 工厂和工具方法Executor , ExecutorService , ScheduledExecutorService , ThreadFactory和Callable在此包中定义的类: jdk1.8API中的解释如下: 二.Executors

  • Springboot Mybatis Plus自动生成工具类详解代码

    前言 代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类.映射文件和接口. 看到很多小伙伴在为数据库生成实体类发愁,现分享给大家,提高开发效率. 一.pom依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> &

随机推荐