数组

数组的声明与创建

  1. 数组的声明:仅声明数组,不开辟空间
//1.
dataType[] arrayRefvar;//首选
//2.
dataType arrayRefvar[];

方括号内不用写数组大小

  1. 数组的创建:给数组生成空间
arrayRefvar=new dataType[size];//分配size空间的大小

注意:

  • 数组的大小是固定的,创建后不可改变
  • 数组如果不初始化,其元素值默认为初始值
  • 数组创建之后就会保存在堆里,每一个数组有一个对应的哈希值
//声明+创建合并写法
dataType[] arrayRefvar=new dataType[size];

获取数组长度

arrayRefvar.length

数组的初始化

  1. 静态初始化:声明时直接赋值

如:

int[] a=new int[]{1,2,3,4,5};
//new int[]部分可以省略,即
int[] a={1,2,3,4,5};

初始化长度即为数组长度

  1. 动态初始化:声明创建数组后再给每一个元素赋值
  2. 默认初始化:声明创建数组后系统会给数组赋一个默认值
  • 整型和字符型:0
  • 浮点型:0.0
  • String型:null

数组的使用

  1. for-Each循环:即增强型for循环:如:
for(int i:a){
    //每一次循环把数组a的一个元素赋给i,从a[0]开始直到字符结束
}
  1. 作为方法的参数:如:
public static void test(int[] a){
    
}
  • 注意:数组作为方法的参数时为引用传递,即在方法中操作数组会改变实参数组。相当于传参时只传递了数组的地址
  1. 作为方法的返回值:如:
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;
  1. 打印数组:打印出整个数组,与System.out.print()连用

如:

System.out.println(Arrays.toString(b));
  1. 升序排列数组:如:
Arrays.sort(a);
  1. 填充数组:用数字填充数组

如:

Arrays.fill(a,0);//用0填充数组
Arrays.fill(a,2,4,0);//方法重载,用0填充a[2]到a[4]区间

其他方法略

稀疏数组

一种数据结构,用于压缩内存

当一个数组大部分元素为同一值时,可以用稀疏数组节省内存

如:

java 打印jvm heap JAVA 打印数组不带括号_数组

建立一个二维数组用于存放稀疏数组

第一行放几行,几列,有几个特殊值

第1-8行用于放每个特殊值的行和列,以及特殊值是多少

复原时剩下的位置填充0即可