欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java数组复制三种方法详解

程序员文章站 2022-04-15 19:06:05
源数组如下创建新数组,并赋值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();

	}
}

结果截图如下

java数组复制三种方法详解

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

相关标签: -------java