网络知识 娱乐 Java中Arrays类中的数组操作方法详解

Java中Arrays类中的数组操作方法详解

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥇博主昵称Jovy. 

🍟博客主页:Jovy.的博客

🥗感谢点赞👍评论🃌

⚇很方便的在线编辑器:Lightly

目录

今日焦点

前言

Arrays类

Arrays类的fill方法

用fill方法填充数组

用fill方法替换数组元素

Arrays类的复制数组方法

用copyOf复制数组

用copyOfRange方法复制部分数组

Arrays类对数组进行排序

用sort方法进行升序排序

问题解答


今日焦点

🎫比尔盖茨发文庆祝万维网诞生30周年

比尔·盖茨称“当数字革命刚开始起步时,我为自己还是个年轻人而感到庆幸,于是我和我的微软同事有机会帮助了这场革命的形成。庆祝万维网诞生30周年,令我怀念起1995年。在那一年,我们推出了IE浏览器。

前言

🏵在前面我们讲到了一维数组和二维数组以及开发工具eclipse的配置

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 替换元素以及填充元素:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

Arrays类

🎖Arrays类是Java中用来操作数组的模块他的使用方法是在Java类中使用import java.util.Arrays进行导入,并使用Arrays.方法()进行调用方法!

Arrays类的fill方法

🎟fill方法有两种用途!

第一种就是填充数组,将数组中的全部元素转换为所输入的元素

第二种就是替换数组元素,将数组中某个元素进行单个替换

用fill方法填充数组

🌋在初始化一个数组之后,如果没有给数组的元素赋值,那么这个数组中的元素默认是为0的,那么我们一个个进行赋值又会略显麻烦,会堆积代码!所以我们就需要用到fill方法进行填充,但是这么做会让全部元素变成同一个数值!

import java.util.Arrays;        //这里导入Arrays类
public class Fill{
    public static void main(String[] args){
        int[] mylist = new int[5];    //这里创建一个名称为mylist的数组,数组的元素个个数为5
        Arrays.fill(mylist,3);        //为数组填充3,格式为fill(列表,数值)
        for(int x:mylist){
            System.out.println(x);
        }                                //通过for each来遍历数组元素
    }
}

上面的for each在以前的文章中介绍过!

用fill方法替换数组元素

🏜在给元素赋值完或者是填充完元素之后,如果想对某个元素进行修改,那么我们就要重新赋值或者是替换元素,但是重新赋值会增加代码,让代码显得更繁琐,所以Arrays类中提供了替换元素的方法fill!

import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
        int[] mylist = {1,2,3,4};
        Arrays.fill(mylist, 1,2,4);
        for(int x:mylist){
            System.out.println(x);
        }

    } //这是一个特殊的格式Arrays.fill(列表名称,空格正向索引,反向索引,改变的数值)

}

🎬这里的正反向索引指向的一定要是同一个元素! 

Arrays类的复制数组方法

🎟在Java程序的使用过程中,有时候会需要一个含有相同或者是部分相同元素的数组,但是重新创建数组的话就会增加代码长度,减少代码可读性,那么我们就可以使用到复制数组或者是部分数组的方法!

用copyOf复制数组

☄️copyOf方法提供了多种重载的方法用以复制数组,增加代码可读性。该方法不受数组长度的限制,若超出,则多处部分为0!

import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
        int[] mylist = {1,2,3,4};
        int[] justlist = Arrays.copyOf(mylist,4);  //将复制后的数组赋值给justlist
        //格式Arrays.copyOf(列表,复制后的长度)
        for(int x:justlist){
            System.out.println(x);
            }
        System.out.println(mylist);
        System.out.println(justlist);        //这里输出两个数组的内存空间进行检查
        }

     //这是一个特殊的格式Arrays.fill(列表名称,空格正向索引,反向索引,改变的数值)

}

 解:从以上结果可以看出赋值成功了,并且内存空间不同下面我会解释为什么要输出内存空间

用copyOfRange方法复制部分数组

🎗有时候在编辑代码的时候只需要中间一部分代码,但是copyOf方法只能复制以前面部分为开头的元素,而不能直接复制中间的代码,为了解决这一个问题,这个类提供了另一个方法copyOfRange方法(中文意思:选择复制)利用这个方法就可以解决这一个问题

import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
        int[] mylist = {1,2,3,4};
        int[] justlist = Arrays.copyOfRange(mylist,1,3);
        //Arrays类的方法使用形式Arrays.copyOfRange(列表,第一个索引位置,第二个索引位置)
        for(int x:justlist){
            System.out.println(x);
        }
    }
}

注:在末尾有问题解答!

Arrays类对数组进行排序

🎟在代码编译过程中,有时候会需要用到有序的一组数组才能进行更好的操作,但是我们重新进行编译会增加代码数量,所以我们要对代码进行排序,Java中提供了sort方法对数组的元素进行升序排序!

用sort方法进行升序排序

🎬在Java编译过程中,有顺序的数组会让你的编译更加方便,使得你自己以及其他参与编译的人更加清楚,尤其是适合那些大基数的数组更为适用和实用

import java.util.Arrays;
public class Fill{
    public static void main(String[] args){
         
        int[] mylist = {1,7,33,4};
        Arrays.sort(mylist);
        //方式为Arrays.sort(列表)
        for(int x:mylist){
            System.out.println(x);
        }
    }
}

问题解答

  • 为什么要在fill方法中加空格:因为不加空格就会使他执行不正确,无法达到效果
  • 为什么要输出内存空间吗:如果在同一个内存空间,一个数组改变之后另一个也会随之改变,会影响后续程序执行
  • copyOfRange方法如果超出索引最大限度会怎么样:如果超出,则超出部分默认为0!
  • 为什么有些要方法要创建新数组有些不用:因为有些方法是对一个数组进行改变,有些是要重新创建数组!