8.Arrays类的静态方法

  1. 8.Arrays类的静态方法
    1. 8.1 知识点
      1. Arrays类是什么
      2. 填充替换数组元素
      3. 数组排序
      4. 复制数组
      5. 查询数组
      6. 总结
    2. 8.2 知识点代码

8.Arrays类的静态方法


8.1 知识点

Arrays类是什么

Arrays类是Java提供的一个专门对数组进行操作的类。它提供了很多静态方法,共我们对数组进行处理,比如排序、查找、填充等等方法。使用它需要导入java.util.Arrays包(类似C#中的命名空间)。

填充替换数组元素

Arrays.fill 方法可以帮助我们对数组进行填充。它有两个重载:

1.Arrays.fill(数组,填充值)

int arr[] = new int[5];
for (int n : arr)
{
    System.out.println(n);//全都是0
}
Arrays.fill(arr, 5);
System.out.println("***************");
for (int n : arr)
{
    System.out.println(n);//全都是5
}

2.Arrays.fill(数组,填充起始位置(包括),填充结束位置(不包括),填充值)

Arrays.fill(arr, 1, 4, 1);
System.out.println("***************");
for (int n : arr)
{
    System.out.println(n);//5 1 1 1 5
}

Arrays.fill(arr, 1, arr.length, 0);
System.out.println("***************");
for (int n : arr)
{
    System.out.println(n);//5 0 0 0 0
}

数组排序

Arrays.sort(数组) 方法可以对数组进行默认的升序排序:

arr = new int[]{4, 3, 6, 1, 2, 8, 1};
Arrays.sort(arr);
System.out.println("***************");
for (int n : arr)
{
    System.out.println(n);
    //            1
    //            1
    //            2
    //            3
    //            4
    //            6
    //            8
}

复制数组

  1. Arrays.copyOf(数组,复制长度) 方法可以赋值指定数组的指定长度。若长度小于传入数组,则截取;若长度大于传入数组,则用默认值填充:
int[] arr2 = Arrays.copyOf(arr, 10);
System.out.println("***************");
for (int n : arr2)
{
    System.out.println(n);
    //            1
    //            1
    //            2
    //            3
    //            4
    //            6
    //            8
    //            0
    //            0
    //            0
}
  1. Arrays.copyOfRange(数组,开始复制索引(包括),赋值的最后索引位置(不包括)):
arr2 = Arrays.copyOfRange(arr, 1, 4);
System.out.println("***************");
for (int n : arr2)
{
    System.out.println(n);
    //            1
    //            2
    //            3
}

查询数组

Arrays.binarySearch(数组,搜索元素)。注意:由于binarySearch内部是对数组进行二分查找,所以使用前必须对数组进行排序。一定要记住使用该API之前一定要排序。如果数组当中没有想要寻找的元素,返回值为负数。如果有相同元素,不能确定返回相同元素的第几个元素。

Arrays.sort(arr);
int index = Arrays.binarySearch(arr, 1);
System.out.println("***************");
System.out.println(index);//1 如果有相同元素不能确定返回相同元素的第几个元素

//Arrays.binarySearch(数组,开始索引(包括),结束索引(不包括),搜索元素)

总结

Java中如果相对数组进行填充、替换、排序、复制、查询等操作,我们可以使用Arrays类中的静态方法:

  • 填充替换:fill
  • 排序:sort
  • 复制:copyOf、copyOfRange
  • 查询:binarySearch

8.2 知识点代码

import java.util.Arrays;

public class Lesson08_Arrays类的静态方法
{
    public static void main(String[] args)
    {
        //知识点1:Arrays类是什么
        //Arrays类是Java提供的一个专门对数组进行操作的类
        //它提供了很多静态方法,共我们对数组进行处理
        //比如排序、查找、填充等等方法
        //使用它 需要导入java.util.Arrays包(类似C#中的命名空间)



        //知识点2:填充替换数组元素
        //Arrays.fill 方法可以帮助我们对数组进行填充
        //它有两个重载
        //1.Arrays.fill(数组,填充值)
        int arr[] = new int[5];
        for (int n : arr)
        {
            System.out.println(n);//全都是0
        }
        Arrays.fill(arr, 5);
        System.out.println("***************");
        for (int n : arr)
        {
            System.out.println(n);//全都是5
        }
        //2.Arrays.fill(数组,填充起始位置(包括),填充结束位置(不包括),填充值)
        Arrays.fill(arr, 1, 4, 1);
        System.out.println("***************");
        for (int n : arr)
        {
            System.out.println(n);//5 1 1 1 5
        }

        Arrays.fill(arr, 1, arr.length, 0);
        System.out.println("***************");
        for (int n : arr)
        {
            System.out.println(n);//5 0 0 0 0
        }



        //知识点3:数组排序
        //Arrays.sort(数组) 方法可以对数组进行默认的升序排序
        arr = new int[]{4, 3, 6, 1, 2, 8, 1};
        Arrays.sort(arr);
        System.out.println("***************");
        for (int n : arr)
        {
            System.out.println(n);
            //            1
            //            1
            //            2
            //            3
            //            4
            //            6
            //            8
        }



        //知识点4:复制数组
        //1.Arrays.copyOf(数组,复制长度) 方法可以赋值指定数组的指定长度
        //若长度 小于传入数组,则截取;若长度 大于传入数组,则用默认值填充
        int[] arr2 = Arrays.copyOf(arr, 10);
        System.out.println("***************");
        for (int n : arr2)
        {
            System.out.println(n);
            //            1
            //            1
            //            2
            //            3
            //            4
            //            6
            //            8
            //            0
            //            0
            //            0
        }

        //2.Arrays.copyOfRange(数组,开始复制索引(包括),赋值的最后索引位置(不包括))
        arr2 = Arrays.copyOfRange(arr, 1, 4);
        System.out.println("***************");
        for (int n : arr2)
        {
            System.out.println(n);
            //            1
            //            2
            //            3
        }



        //知识点5:查询数组
        //Arrays.binarySearch(数组,搜索元素)
        //注意:由于binarySearch内部是对数组进行二分查找
        //所以使用前必须对数组进行排序
        Arrays.sort(arr);
        //一定该记住 使用该API之前 一定要排序
        //如果数组当中没有想要寻找的元素 那么返回值为负数
        int index = Arrays.binarySearch(arr, 1);
        System.out.println("***************");
        System.out.println(index);//1 如果有相同元素不能确定返回相同元素的第几个元素

        //Arrays.binarySearch(数组,开始索引(包括),结束索引(不包括),搜索元素)

        //总结
        //Java中如果相对数组进行填充、替换、排序、复制、查询等操作
        //我们可以使用Arrays类中的静态方法
        //填充替换:fill
        //排序:sort
        //复制:copyOf、copyOfRange
        //查询:binarySearch
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏