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
}
复制数组
- 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
}
- 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
 
            