Arrays的常用方法详解

Arrays的常用方法详解

sort()

待续…

parallelSort()

待续…

binarySearch()

待续…

equals()

待续…

fill()

待续…

copyOf()

@since 1.6
最终创建数组都是通过System.arraycopy()这个本地方法来创建的数组。
所以在说这个方法之前,我们先来分析一下System.arraycopy()这个方法;

 public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);

该方法用了native关键字,说明调用的是其他语言写的底层函数

参数解释:
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
方法作用:
将源数组的一段元素复制到目标数组的某一段位置上。

好了这个方法懂了,我们再回到copyOf()方法。
随便找一个方法的源代码出来看一下:

public static int[] copyOf(int[] original, int newLength) {
        int[] copy = new int[newLength];
        System.arraycopy(original, 0, copy, 0,
                         Math.min(original.length, newLength));
        return copy;
    }

参数解释:

original - 源数组
newLength - 规定新数组的长度
方法作用:
从源数组的位置0截取newLength 长度的数组。(截取出来的数组是新的数组)

System.arraycopy()与Arrays.copyOf()的区别:

  1. arraycopy()需要一个传入两个数组,作用更像是从一个数组往另外一个数组装载的过程
  2. copyOf()只需要传入一个数组,作用更像是以源数组为模板生产出另一个数组的过程。
  3. arraycopy()相较与copyOf()方法控制性更大。

记忆技巧:
将数组看成一条线段,copyOf是用尺子从头比着这条线段画出来一条新的线段,当然这条线段不能超过对比线段的长度。而arraycopy是可以从这条线段的任意位置开始画出新的一条线段,依然不能超过对比线段的长度。

copyOfRange()

@since 1.6
待续…

asList()

待续…

hashCode()

待续…

deepHashCode()

待续…

toString()

待续…

deepToString()

待续…

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值