JavaSE_2.1——数组之Arrays工具类

Java提供了一个专门用于操作数组的工具类,即Arrays类,位于Java. util包下【需要导入】。该类提供了一系列方法来操作数组,例如排序、赋值、比较、填充数组 等,用户直接调用这些方法即可【例如:Arrays.sort(数组名)】,这样就降低了开发难度。

Arrays工具类如下表所示:

|-----------------------------------------------------|--------------|-----------------------------------------------|
| 方法 | 返回类型 | 说明 |
| `equals(array1,array2)` | boolean | 比较两个数组是否相等 |
| sort ( array ) | void | 对数组array的元素进行排序【默认升序】 |
| toString( array ) | String | 将一个数组转换成字符串输出 |
| fill (array,value) | void | 把数组 array 的所有元素都赋值为 value |
| fill(arr,start,end,val) | void | 将指定的值分配给指定数组的指定范围的每个元素 |
| copyOf(array,length) | 与array数据类型一致 | 把array数组赋值成一个长度为length的新数组 |
| binarySearch(array,val) | int | 使用二分查找的方法检索元素值在数组array中的下标 |
| compare(array1,array2) | int | 按照字典顺序比较数组,前面的数组大,返回大于 0 的值,后面的数组大,返回小于 0 的值. |
| copyOfRange(arr,start,end) | 与array数据类型一致 | 将指定数组的指定范围赋值到新数组中 |
| mismatch(array1,array2) | int | 查找并返回两个数组之间第一个不匹配的索引,如果未找到不匹配的,则返回 -1. |
| mismatch(array1,start1,end1,array2,start2,end2) | int | 查找并返回指定范围内两个数组之间第一个不匹配的索引,如果未找到不匹配的则返回 -1 |
| deepEquals(arr1,arr2) | boolean | 如果两个指定数组,彼此深度相等,则返回 true |

测试

1. equals()方法

java 复制代码
// equals()方法:比较两个数组是否相等
      int[] arr1 = {1,2,3,4,5};
      int[] arr2 = {1,2,3,4,5};

      boolean is = Arrays.equals(arr1, arr2);
      System.out.println(is); // true
   // 这里要注意了:
        //== 比较的是内存地址是否相等,在栈里面比较
        //equals 比较的是真实值,在堆里面比较
      System.out.println(arr1 == arr2);   // false

2. sort()方法以及toString()方法:

java 复制代码
// sort()方法:对数组中的元素进行排序
        int[] arr = {12,45,67,11,2,34};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));   //[2, 11, 12, 34, 45, 67]

3.fill()方法:

java 复制代码
//fill()方法:填充数组中的每一个元素为同一个值
        int[] arr = new int[6];
        Arrays.fill(arr,2);
        System.out.println(Arrays.toString(arr));   // [2, 2, 2, 2, 2, 2]

4.copyOf()方法:

java 复制代码
// copyOf()方法:将一个数组赋值到一个长度为length的新数组中
        int[] arr = {1,2,4,6,8,0};
        int[] newArr = Arrays.copyOf(arr, 7);
        System.out.println(Arrays.toString(newArr));    //[1, 2, 4, 6, 8, 0, 0]

5. binarySearch()方法:

前提是要先对输在进行排序

java 复制代码
// binarySearch()方法:利用二分查找,检索数组中的某个元素的下标
        int[] arr = {1,2,5,7,9,9,43};
        int target = 2;    // 目标值
        int i = Arrays.binarySearch(arr, target);
        System.out.println(i);

6.compare() 方法:

java 复制代码
// compare() 方法:比较两个数组的大小,前面的大,返回大于0的值,后面的大,返回小于0的值
        int[] arr = {1,2,5,7,9,9,43};
        int[] arr2 = {1,2,5,7,9,43};
        int i = Arrays.compare(arr,arr2);
        System.out.println(i);      // -1:表示后面的大

7.copyOfRange()方法:

java 复制代码
// copyOfRange()方法:将指定数组的指定范围复制到新数组中
        int[] arr = {1,2,5,7,9,9,43};
        int[] newArr = Arrays.copyOfRange(arr, 2, 5);
        System.out.println(Arrays.toString(newArr));    // [5, 7, 9]

8.System.arraycopy()方法:

java 复制代码
        /*
          System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
            src: 源数组,被复制的数组
            srcPos: 源数组的起始位置,从这一位开始复制
            dest: 目标数组
            destPos: 目标数组的位置
            length: 复制多少元素, 不能比 src.length 大

            从 src 数组的 srcPos 位置开始复制 length 个元素到 dest 数组的 destPos
         */
        int[] src = new int[]{1, 2, 3, 4, 5, 6};
        int[] dest = new int[5];


        System.arraycopy(src, 3, dest, 2, 3);

        System.out.println(Arrays.toString(dest));

9. mismatch()方法:

java 复制代码
        int[] arr = {1, 2, 3, 4};
        int[] arr1 = {1, 2, 3, 5};

        int i = Arrays.mismatch(arr, arr1);

        System.out.println(i);      // 3
相关推荐
长安第一美人3 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan3 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
superman超哥3 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
不爱吃糖的程序媛3 小时前
Ascend C开发工具包(asc-devkit)技术解读
c语言·开发语言
bu_shuo3 小时前
MATLAB奔溃记录
开发语言·matlab
韩立学长4 小时前
【开题答辩实录分享】以《自助游网站的设计与实现》为例进行选题答辩实录分享
java·mysql·spring
ss2734 小时前
线程池:任务队列、工作线程与生命周期管理
java·后端
不像程序员的程序媛4 小时前
Spring的cacheEvict
java·后端·spring
SAP小崔说事儿4 小时前
在数据库中将字符串拆分成表单(SQL和HANA版本)
java·数据库·sql·sap·hana·字符串拆分·无锡sap
凌云若寒4 小时前
半导体代加工企业标签模板痛点的全景式解决方案
java