Java数组-引用数据类型
数组初始化
- 动态初始化(声明并开辟数组)
数组类型[] 数组名称 = new 数据类型[长度]
eg: int[] data = new int[5];//声明并开辟一个长度为5的整形数组
1.数组通过下标索引来取得元素,下标默认从0开始。数组下标超出数组长度,数组越界异常(运行时异常)
2.数组中每个元素都有默认值,默认值是该数据类型的默认值。
3.数组名称.length:取得数组长度
4.数组遍历推荐使用for-each循环(仅限于数组内容读取),
要修改数组内容,还是使用常规for循环
for(int x : data){...}
数组属于引用数据类型,必须在使用前先初始化。否则会NullPointerException-空指针异常(运行时异常)
引用传递:多个栈内存指向同一块堆内存
- 静态初始化
简化格式:
数据类型[] 数组名称 = {值,值,....}
完整格式:(推荐)
数据类型[] 数组名称 = new 数据类型[]{值,值....}
eg:int[] data = new int[]{1, 2, 3, 4, 5};
在数组定义时直接设置内容,根据值的个数确定数组长度,且长度不可修改。
- 二维数组
动态初始化:
数据类型[][] 对象数组 = new 数据类型[行个数][列个数] ;
eg:
int[][] data = new int[3][4];//开辟行数为3,列数为4的整形数组
静态初始化:
数据类型[][] 对象数组 = new 数据类型[][]{{值,值,..},{值,值,..},..} ;
eg:
int[][] data = new int[][]{{1,2},{3,4,5},{6,7,8,9}};
数组与方法的互操作-引用传递
1.方法接收数组
2.方法返回数组
3.方法修改数组
Java对数组的支持(可直接调用)
1. 排序
java.util.Arrays.sort(数组名称);
支持所有基本数据类型数组
内部使用双轴快速排序
2. 数组部分拷贝
System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);
3. 数组全拷贝()*
int[] 数组名称 = java.util.Arrays.copyOf(源数组名称,新数组长度);