【JavaSE篇】——数组练习

本文介绍了Java中数组操作的关键方法,如Arrays.copyOf用于创建新数组拷贝,arraycopy进行局部拷贝,以及Arrays.fill用于填充数组值。还讨论了数组拷贝的本质、clone方法和比较工具Arrays.equal。
摘要由CSDN通过智能技术生成

目录

🚩数组转字符串

🚩数组拷贝

🎈拷贝的实质

🎈copyOf方法(new)

🍭copyOf扩容 

🎈arraycopy方法(局部的拷贝)(系统类)

🎈copyOfRange方法(局部拷贝)

🎈原数组.clone()

🚩Arrays.fill

🚩Arrays.equal

🚩sort

❗总结


Java 中提供了 java.util.Arrays , 其中包含了一些操作数组的常用方法.

.Array;      操作数组相关的工具类. 


🚩数组转字符串

数组——>字符串 {1,2,3,4}——>[1,2,3,4],我们发现转换成字符串之后是这样的,这是java中自带的,我们可以自己去实现toString,toString是库函数里面的,我们可以自己实现一个。

    public  static  String   myString(int[] a)
    {
        if(a==null)return null;
        String ret="[";
        for (int i = 0; i < a.length; i++) {
            if(i!=a.length-1){
                ret+=a[i]+",";
            }
            else {
                ret += a[i];
            }
        }
        ret+="]";
        return ret;
    }
    public static void main(String[] args) {
        //int[] a={1,2,3,4};
       // int[] a=null;
        int[] a={};
        String result=myString(a);
        System.out.println(result);
    }

🚩数组拷贝

🎈拷贝的实质

首先我们谈一谈什么是拷贝?——拷贝的前提是要有原内容产生一个一模一样的内容,叫做拷贝。

这算拷贝嘛?——不是,因为没有产生新的内存空间。

真正的拷贝是自己开辟一个和原数组一模一样的空间大小,然后将每个值依次拷贝进去,而不是没有开辟的新空间。

  public static void main(String[] args) {
        int[] array={1,2,3,4};
        //int [] array2=array;
        int[] array2=new int[array.length];
        for (int i = 0; i <array.length ; i++) {
            array2[i]=array[i];
        }
        System.out.println(Arrays.toString(array2));
    }

🎈copyOf方法(new)

java中不用自己手动实现数组的拷贝,它提供了一个copyOf方法。  

 copyOf方法在进行数组拷贝时,创建了一个新的数组 array2和array引用的不是同一个数组,我们可以ctrl+左鼠标键可以看到copyOf的底层代码,已经给copy这个数组进行开辟空间。

 public static void main(String[] args) {
        int[] array={1,2,3,4};
        int[] array2=Arrays.copyOf(array,array.length);
        System.out.println(Arrays.toString(array2));
    }

🍭copyOf扩容 


copyOf方法可以扩容,只不过新开辟的数组长度都默认初始化是0.


🎈arraycopy方法(局部的拷贝)(系统类)

这个方法的底层是无法看到的,由native修饰的方法底层是c/c++语言写的。(速度快)

前面从第几个位置开始拷贝,那么后面的拷贝长度就相应的减几。(从原数组的第二个位置拷贝到新数组的开始位置)——前2个拷贝不到。

(从原数组的开始位置拷贝到新数组的第二个位置)长度也得减2——只不过后俩个拷贝不到。


🎈copyOfRange方法(局部拷贝)


🎈原数组.clone()


🚩Arrays.fill

fill方法重载了很多类型,不止是int类型,可以让整个数组的值都改成一个值,也可以让数组中的一个区间改成某个值。


🚩Arrays.equal

返回类型是boolean类型的,要么true要么false,俩个数组相比较。


🚩sort

我们可以发现,java中从范围的改变都是左闭右开区间,我们给1-4位置排序,实则给1,2,3下标排序了。


❗总结


这是所有这个文章讲的内容。

我只是没读好书,走错一些路,但我并不是坏孩子。 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值