数组的拷贝,删除和扩容

数组的拷贝,删除和扩容都可以使用System类中的一个arraycopy方法来实现。
/**
* src: 源数据--数组
* srcPos: 指定从src数组的第几个元素开始赋值
* dest:被赋值的数组
* destPos:指从dest数组的那个位置开始赋值
* length:指定将src数组的多少个元素赋给dest数组的元素
*/
public static native void arraycopy(Object src,  int  srcPos,
                                    Object dest, int destPos,int length);
拷贝实例:
  public static void main(String[] args) {
    String[] s = {"阿里","百度","京东","搜狐","网易"};
    String[] sBak = new String[6];
    System.arraycopy(s,1,sBak,2,s.length-1);
    for (String s1 : sBak) {
        System.out.println(s1);
    }
}
//  null null 百度 京东 搜狐 网易

删除:

本质上也是拷贝。
//删除数组中指定索引位置的元素,并将原数组返回
public static String[] removeElment(String[] s, int index){
    System.arraycopy(s, index+1, s, index, s.length-index-1);
    s[s.length-1] = null;//删除最后一位重复的元素
    return s;
}

public static void main(String[] args) {
    String[] s = {"阿里","百度","京东","搜狐","网易"};
    String[] strings = removeElment(s, 0);
    for (String s1 : strings) {
        System.out.println(s1);
    }
}
// 百度 京东 搜狐 网易 null

扩容:

本质上是:先定义一个更大的数组,然后将原数组内容原封不动拷贝到新数组中
public static String[] extendRange(String[] s1){
    String[] s2 = new String[s1.length+5];
    //就将s1中所有的元素拷贝到了s2
    System.arraycopy(s1,0, s2,0, s1.length);   
    return  s2;
}

public static void main(String[] args) {
    String[] s = {"阿里","百度","京东","搜狐","网易"};
    String[] strings = extendRange(s);
    for (String s1 : strings) {
        System.out.println(s1);
    }
}
// 阿里 百度 京东 搜狐 网易 null null null null null

 关注公众号,获取各种免费软件、资料,笔记哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之所向...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值