Java知识系统回顾整理01基础06数组05复制数组

时间:2023-03-09 01:16:03
Java知识系统回顾整理01基础06数组05复制数组

数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少

一、复制数组

把一个数组的值,复制到另一个数组中

System.arraycopy(src, srcPos, dest, destPos, length)

src: 源数组

srcPos: 从源数组复制数据的起始位置

dest: 目标数组

destPos: 复制到目标数组的起始位置

length: 复制的长度

public class HelloWorld {

public static
void main(String[] args) {

int a [] = new
int[]{18,62,68,82,65,9};

int b[] = new
int[3];//分配了长度是3的空间,但是没有赋值

//通过数组赋值把,a数组的前3位赋值到b数组

//方法一: for循环

for (int i = 0; i < b.length; i++) {

b[i] = a[i];

}

//方法二: System.arraycopy(src, srcPos, dest, destPos, length)

//src: 源数组

//srcPos: 从源数组复制数据的起始位置

//dest: 目标数组

//destPos: 复制到目标数组的启始位置

//length: 复制的长度

System.arraycopy(a, 0, b, 0, 3);

//把内容打印出来

for (int i = 0; i < b.length; i++) {

System.out.print(b[i] + " ");

}

}

}

二、练习--合并数组

题目:

首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组(向数组填充随机数的办法,参考这里)

实现效果:

Java知识系统回顾整理01基础06数组05复制数组

官方示例代码:

public class HelloWorld {

public static
void main(String[] args) {

int a[] = new
int[(int) (Math.random() * 5)+5];

for (int i = 0; i < a.length; i++)

a[i] = (int) (Math.random() * 100);

int b[] = new
int[(int) (Math.random() * 5)+5];

for (int i = 0; i < b.length; i++)

b[i] = (int) (Math.random() * 100);

System.out.println("数组a的内容:");

for (int i : a) {

System.out.print(i+" ");

}

System.out.println();

System.out.println("数组b的内容:");

for (int i : b) {

System.out.print(i+" ");

}

System.out.println();

int c[] = new
int[a.length+b.length];

System.arraycopy(a, 0, c, 0, a.length);

System.arraycopy(b, 0, c, a.length, b.length);

System.out.println("数组c的内容:");

for (int i : c) {

System.out.print(i+" ");

}

}

}