数组的复制

数组的拷贝

System.arraycopy(src, srcPos, dest, destPos, length);
public class Arraycopy {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String[] s1= {"a1","a2","a3","a4","a5","a6"};
		String[] s2=new String[10];
		System.arraycopy(s1, 2,s2, 0, 4);
		//System.arraycopy(src, srcPos, dest, destPos, length);
		for(int i=0;i<s2.length;i++) {
			System.out.println(s2[i]);
		}
	}

删除数组中的某个元素。

实际上也即是数组的拷贝,在需要删除元素的位置分开,将后面的元素重新赋值放在以删除元素为首位置的地方。得到的即是删除元素之后的元素。最后一个元素的位置可能还是原数组的值,所以需要重新将其置位null。

public class Arraycopy {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String[] s1= {"a1","a2","a3","a4","a5","a6"};
		//删除某个元素也就是数组的拷贝,删除a3
		System.arraycopy(s1, 3,s1, 2, 3);
		s1[s1.length-1]=null;
		for(int i=0;i<s1.length;i++) {
			System.out.println(s1[i]);
		}
		
	}

}

数组的扩容

本质上就是,先定义一个更大的数组,将原数组的内容原封不动的拷贝到新数组中

public class Arraycopy {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[] s1= {"a1","a2","a3"};
		Addelement(s1);
		
		}
	public static String[] Addelement(String[] s1) {
		//String[] s1= {"a1","a2","a3"};
		String[] s2=new String[s1.length+10];
		
		System.arraycopy(s1, 0, s2, 0, s1.length);
		for(String temp:s2) {
			System.out.println(temp);
		}
		return s2;
	}

}

在数组中增加一个元素

public class Arraycopy {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[] s1= {"a1","a2","a3"};
		String[] s2= {"a4","a5"};
		AddElement(s1,s2,2);
		
		}
	//将s2插入到s1中的第index个元素之后。
	public static String[] AddElement(String[] s1,String[] s2,int index) {
		//String[] s1= {"a1","a2","a3"};
		String[] s3=new String[s1.length+s2.length];
		
		System.arraycopy(s1, 0, s3, 0, index);

		System.arraycopy(s2, 0, s3, index, s2.length);
		System.arraycopy(s1, index, s3, index+s2.length, s1.length-index);
		//System.arraycopy(src, srcPos, dest, destPos, length);
		for(String temp:s3) {
			System.out.println(temp);
		}
		return s3;
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值