数组
数组的声明与创建
- 数组的声明:仅声明数组,不开辟空间
//1.
dataType[] arrayRefvar;//首选
//2.
dataType arrayRefvar[];
方括号内不用写数组大小
- 数组的创建:给数组生成空间
arrayRefvar=new dataType[size];//分配size空间的大小
注意:
- 数组的大小是固定的,创建后不可改变
- 数组如果不初始化,其元素值默认为初始值
- 数组创建之后就会保存在堆里,每一个数组有一个对应的哈希值
//声明+创建合并写法
dataType[] arrayRefvar=new dataType[size];
获取数组长度
arrayRefvar.length
数组的初始化
- 静态初始化:声明时直接赋值
如:
int[] a=new int[]{1,2,3,4,5};
//new int[]部分可以省略,即
int[] a={1,2,3,4,5};
初始化长度即为数组长度
- 动态初始化:声明创建数组后再给每一个元素赋值
- 默认初始化:声明创建数组后系统会给数组赋一个默认值
- 整型和字符型:0
- 浮点型:0.0
- String型:null
数组的使用
- for-Each循环:即增强型for循环:如:
for(int i:a){
//每一次循环把数组a的一个元素赋给i,从a[0]开始直到字符结束
}
- 作为方法的参数:如:
public static void test(int[] a){
}
- 注意:数组作为方法的参数时为引用传递,即在方法中操作数组会改变实参数组。相当于传参时只传递了数组的地址
- 作为方法的返回值:如:
public static int[] test(int[] a){
···
return a;
}
二维数组
语法:如:
int[][] a=new int[2][5];
相当于每一个a[i]为一个一维数组,a又是以这些数组a[i]为元素的一个一维数组。
Arrays工具类
Java封装好的数组工具
需要先在程序开头导入该方法类才可以使用
import java.util.Arrays;
- 打印数组:打印出整个数组,与System.out.print()连用
如:
System.out.println(Arrays.toString(b));
- 升序排列数组:如:
Arrays.sort(a);
- 填充数组:用数字填充数组
如:
Arrays.fill(a,0);//用0填充数组
Arrays.fill(a,2,4,0);//方法重载,用0填充a[2]到a[4]区间
其他方法略
稀疏数组
一种数据结构,用于压缩内存
当一个数组大部分元素为同一值时,可以用稀疏数组节省内存
如:
建立一个二维数组用于存放稀疏数组
第一行放几行,几列,有几个特殊值
第1-8行用于放每个特殊值的行和列,以及特殊值是多少
复原时剩下的位置填充0即可