您当前的位置: 首页 >  Java
  • 0浏览

    0关注

    674博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java数组复制五种方法

沙漠一只雕得儿得儿 发布时间:2016-11-20 11:40:05 ,浏览量:0

package 数组;

import java.util.Arrays;

public class 数组复制五种方法 {
	public static void main(String[] args) {
		/**
		 * 方法一:效率最高,使用System.arraycopy(); 
		 * public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
		 * 参数: 
		 * src - 源数组。
		 * srcPos - 源数组中的起始位置。 
		 * dest - 目标数组。 
		 * destPos - 目标数据中的起始位置。 
		 * length - 要复制的数组元素的数量 
		 * 复制后的结果: 1 2 3 4 0 0 0 0
		 */
		int[] a11 = { 1, 2, 3, 4 };
		int[] a12 = new int[8];
		System.arraycopy(a11, 0, a12, 0, a11.length);
		System.out.print("方法一复制后的结果: ");
		for (int a : a12) {
			System.out.print(a + " ");
		}
		System.out.println();

		/**
		 * 方法二:利用clone().
		 */
		int[] a21 = { 5, 6, 7, 8 };
		int[] a22 = new int[8];
		a22 = a21.clone();
		System.out.print("方法二复制后的结果: ");
		for (int a : a22) {
			System.out.print(a + " ");
		}
		System.out.println();

		/**
		 * 方法三:复制引用
		 * 复制引用:是指将某个对象的地址复制,所以复制后的对象副本的地址和源对象相同,这样,当改变副本的某个值后,源对象值也被改变;
		 * 复制对象:是将源对象整个复制,对象副本和源对象的地址并不相同,当改变副本的某个值后,源对象值不会改变;
		 */
		int[] a31 = { 2, 4, 6, 8 };
		int[] a32 = a31;
		System.out.print("方法三复制后的结果: ");
		for (int a : a32) {
			System.out.print(a + " ");
		}
		System.out.println();

		/**
		 * 方法四:利用Array的静态方法copyOfRange(T[] original,int from,int to) 
		 * 参数:
		 * original - 将要从其复制一个范围的数组 
		 * from - 要复制的范围的初始索引(包括) 
		 * to - 要复制的范围的最后索引(不包括)。(此索引可以位于数组范围之外)。
		 * 
		 */
		int[] a41 = { 1, 3, 5, 7 };
		int[] a42 = Arrays.copyOfRange(a41, 0, a41.length);
		System.out.print("方法四复制后的结果: ");
		for (int a : a42) {
			System.out.print(a + " ");
		}
		System.out.println();

		/**
		 * 方法五:利用for循环
		 */
		int[] a51 = { 9, 8, 7, 6 };
		int[] a52 = new int[8];
		for (int i = 0; i < a51.length; i++) {
			a52[i] = a51[i];
		}
		System.out.print("方法五复制后的结果: ");
		for (int a : a52) {
			System.out.print(a + " ");
		}
	}
}

关注
打赏
1657159701
查看更多评论
立即登录/注册

微信扫码登录

0.0374s