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

Java基础之一维数组声明与底层的拷贝方法

程序员文章站 2022-07-15 22:42:06
...

1. 数组是相同数据的集合

1.0 首先数组是在堆上申请的一段连续的空间
int [] arr = new int[10];

Java基础之一维数组声明与底层的拷贝方法

arr 保存在堆上开辟的内存的首地址

1.1数组的三种定义方式

数组的通用声明方式 类型名 [] 数组名
(1) 先声明后初始化

int [] arr ;
arr = new int [5];                  //这种声明方式直接给定了数组的大小,
							    	//且数组各个元素默认值为0

(2)声明的同时进行初始化

int []arr = {1,2,3,4};
int []arr = new int[]{1,2,3,4}; 		//系统可以直接计算出来元素的个数

(3)先声明后初始化使用系统分配的默认值

int [] arr = new int [5];     //包含5个元素,且各个元素默认初始化为0

不能同时定义数组的各个元素和大小

1.2 数组的遍历

1.下标遍历

int []arr =new int [5];
for(int i = 0 ;i<arr.length ;i++ ){
	System.out.println(arr[i]);
}

2.for each遍历

for(int value : brr){					// 将每个数据赋值给value    迭代器自定义
	System.out.println(value);
}

3.Arrays类中的方法: to String()方法

System.out.println(Arrays.toString(arr)); //调用了TO String方法
1.3 一维数组的拷贝

1.调用 数组名.clone()方法

	int []arr ={1,2,3};
    int []brr;
    brr =arr.clone();
    System.out.println("arr:"+ Arrays.toString(arr));
    System.out.println("brr:"+ Arrays.toString(brr));

Java基础之一维数组声明与底层的拷贝方法
2. Arrays.copyof(原数组,拷贝数组长度) ;

  	 int []arr ={1,2,3};
    int [] brr = Arrays.copyOf(arr,arr.length);
    System.out.println("arr:"+ Arrays.toString(arr));
    System.out.println("brr:"+ Arrays.toString(brr));    //拷贝结果同上

这种拷贝方式可以通过给原数组进行间接增长
arr = Arrays.copyOf(arr,arr.length);
Java基础之一维数组声明与底层的拷贝方法
Arrays.copyOf();
底层实现原理
Java基础之一维数组声明与底层的拷贝方法
Arrays.copyOf();实现的原型是

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

src 为原数组
srcPos为原数组的要复制的起始位置 在Arrays.copyOf();中默认为0
dest 为目的数组
destPos 为目的数组放置的起始位置 在Arrays.copyOf();中默认为0

在一维数组中所有的拷贝均为深拷贝,不存在浅拷贝

在此处 src 与dest 必须是相同的类型或者是可进行转换的数据类型

相关标签: 一维数组