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