Day06_数组
数组
相同类型数据的有序集合,可通过下标访问,索引从0开始
创建数组
dataType[] arrayRefVar;//首选
//或
dataType arrayRefVar[];//效果相同(c/c++的写法)
dataType[] arrayRefVar = new dataType[arraySize];
arrays.length; //获取数组长度
-
声明数组
-
创建数组
-
数组赋值
数组下标合法区间:[0,length-1]
数组特点
长度确定,元素类型相同,数组变量属于引用类型
数组对象本身在堆中
数组使用
for(int i = 0; i < arrays.length ; i++){
System.out.println(arrays[i]);
} //打印全部数组元素
for(int i = 0; i < arrays.length ; i++){
sum += arrays[i];
} //计算全部元素和
int[] result = new int[arrays.length];
for(int i = 0,result = result.length-1; i < arrays.length; i++,j--){
result[j] = arrays[i];
} //反转数组
强循环无下标
二位数组
int a[][] = new int[number1][number2];
Arrays类
通过fill复制
通过sort升序排序
equals比较数组
binarySearch二分查找操作
稀疏数组
数组大部分为0时,使用稀疏数组
记录数据有几行几列,有多少不同值,从而缩小程序规模
//1.获取有效值个数
int sum = 0;
for(int i = 0; i < arrays.length; i++){
for(int j = 0; j < arrays.length; j--){
if(arrays[i][j] != 0){
sum++;
}
}
}
//2.创建一个稀疏数组
int array2 = new int[sum+1][3];
array2[0][0] = arrays.length;
array2[0][1] = arrays.length;
array2[0][2] = sum;
//3.遍历二位数组,将非零值存在稀疏数组中
int count = 0;
for(int i = 0; i < arrays.length; i++){
for(int j = 0; j < arrays[i].length;j++){
if(arrays[i][j] != 0){
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = arrays[i][j];
}
}
}
Java内存分析
堆
栈
方法区
三种初始化
静态初始化
int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
动态初始化
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
默认初始化
存在默认值,通常为0