Day06_数组

数组

相同类型数据的有序集合,可通过下标访问,索引从0开始

创建数组

dataType[] arrayRefVar;//首选
//或
dataType arrayRefVar[];//效果相同(c/c++的写法)

dataType[] arrayRefVar = new dataType[arraySize];

arrays.length; //获取数组长度
  1. 声明数组

  2. 创建数组

  3. 数组赋值

数组下标合法区间:[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



posted @ 2022-01-03 15:07  lzn的博客站  阅读(139)  评论(0编辑  收藏  举报