当前位置: 移动技术网 > IT编程>开发语言>Java > java数组复制三种方法详解

java数组复制三种方法详解

2020年07月31日  | 移动技术网IT编程  | 我要评论
源数组如下创建新数组,并赋值int a[] = new int[20];for (int i = 0; i < a.length; i++) { a[i] = i + 15; }三种方法如下int b[] = Arrays.copyOfRange(a, 0, 20);int c[] = Arrays.copyOf(a, 10);int d[] = new int[30]; System.arraycopy(a, 10, d, 5, 1.

源数组如下

创建新数组,并赋值

int a[] = new int[20];

for (int i = 0; i < a.length; i++) {
        a[i] = i + 15;
 }

 三种方法如下

int b[] = Arrays.copyOfRange(a, 0, 20);

int c[] = Arrays.copyOf(a, 10);

int d[] = new int[30];
        System.arraycopy(a, 10, d, 5, 10);

 整个代码如下

每个方法的详细使用及参数意义在注释中

package arrayCopy;

import java.util.Arrays;

public class Copys {
	public static void main(String[] args) {

		int a[] = new int[20];
		for (int i = 0; i < a.length; i++) {
			a[i] = i + 15;
		}

		int b[] = Arrays.copyOfRange(a, 0, 20);
		int c[] = Arrays.copyOf(a, 10);
		int d[] = new int[30];
		System.arraycopy(a, 10, d, 5, 10);

		System.out.print("源数组: ");
		for (int i : a) {
			System.out.print(i + " ");
		}
		System.out.println();
		System.out.println();

		System.out.println("Arrays.copyOfRange(a, 2, 10)结果:   ");
		for (int t : b) {
			System.out.print(t + " ");
		}
		/*
		 该方法作用是把a数组从0开始复制,复制到哪里 
		 参数意义(原数组,源数组开始复制位置,源数组截止位置+1)
		 如果要复制整个数组,则参数为(a,0,20) 
		 新数组长度可以比原数组长,如(a,2,30), 结果就是
		 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 0 0 0 0 0 0 0 0 0 0
		 */
		System.out.println();
		System.out.println();
		

		System.out.println("Arrays.copyOf(a, 10)结果:");
		for (int t : c) {
			System.out.print(t + " ");
		}
		/*
		 该方法作用是简单复制数组,从源数组的下标0开始,复制10个数
		 参数意义(源数组,从0开始到截止位置+1)
		 如果复制整个数组,则参数为Arrays.copyOf(a, 10),结果就是
		 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 
		 和Arrays.copyOfRange一样,也可以用作扩容,新数组可以比原数组大,比如Arrays.copyOfRange(a, 2, 30)结果如下
		 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 0 0 0 0 0 0 0 0 0 0
		 */
		System.out.println();
		System.out.println();

		System.out.println("System.arraycopy(a, 10, d, 5, 3)结果:");
		for (int t : d) {
			System.out.print(t + " ");
		}
		/*
		 该方法作用是把源数组a从第10个数开始,复制到新数组第5个位置,总共复制3个数
		 参数意义(源数组,源数组开始下标,新数组,新数组开始下标,原数组截止下标+1)
		 如复制5个数为参数设置为System.arraycopy(a, 10, d, 5, 5)
		 0 0 0 0 0 25 26 27 28 29 0 0 0 0 0 
		 最后一个参数不能超过源数组长度,如当前源数组长度为20,从第10个开始复制,则该参数最大只能是10,否则会有溢出报错
		 */
		System.out.println();

	}
}

结果截图如下

本文地址:https://blog.csdn.net/qq_35697978/article/details/107686221

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网