初见JAVA-数组-初级进化06
数组定义
相同类型数据的有序集合
有先后顺序,可以用下标访问
数组声明
dataType[] arrayRefVar
创建数组
dataType[] arrayRefVar = new dataType[arraySize]
数据访问
由索引访问,从0开始
获取数组长度
arrays.length
数组基本特点
长度是确定的,一旦确定,大小不可以改变
元素必须是相同类型,可以是基本类型/引用类型
数组变量是引用对象,数组可以看成对象,每个元素相当对象的成员变量
Java对象在堆中,所以数组对象本身在堆中
Java内存分析
堆
存放new的对象和数组
可以被所有线程共享,不会存放别的对象引用
栈
存放基本变量类型(包含这个基本类型的具体数值)
引用对象的变脸(放引用在堆里的具体地址)
方法区
被所有线程共享
包含所有的class和static变量
1.声明数组:
int[] array = null;
2.创建数组
array = new int[10];
3.给数组元素中赋值
array[0]=1
初始化
静态初始化:创建并赋值
动态初始化
数组的默认初始化:数组是引用类型,元素等于类的示例
异常
数组下标越界:
ArrayIndexOutofBoundsException
使用
For-each循环
数组作为方法入参
数组作为返回值
多维数组
int[][] arrayB = new int[2][4];
Arrays类
数组的工具类
其中的方法都是static修饰的静态方法,可以用类名直接调用
常用功能:
- 给数组赋值:fill
- 对数组排序:sort (升序)
- 对比数组:equals
- 查找数组元素:binarySearch方法对排序好的数组进行二分查找法操作
冒泡排序
(8种排序算法)排序算法
O(n2)
稀疏数组
介绍:
当一个数组中大部分元素为0,或者为同一个值
处理方式为 记录数组一共几行几列,有多少不同值,把具有不同值的元素和行列和值记录在小规模数组中