1.数组的概述
数组 , 就可以理解为多个多个数据的组合
是程序中的容器 : 数组 , 集合框架(以后会将 : List , Set , Map)
数组存储中的数据的特点 : 依次紧密排列 , 有序的 , 可以重复的
此时的数组 , 集合框架都是在内存中对多个数据的存储 .
数组的其他特点 : 一旦初始化 , 其长度就是确定的 , 不可更改的
2.一维数组的使用 (重要)
①数组的声明和初始化
int [ ]arr = new int[10];
String [ ]arr1 = new String[ ]{"Tom" , "Jerry"};
②调用数组的指定元素 : 使用角标 , 索引 , index
index从0开始!
③数组的属性 : length , 表示数组的长度
④数组的遍历 : for(int i = 0; i < arr.length; i ++)arr[i]
⑤一维数组的内存解析(难度有点高)
前提 : 在main( )中声明变量 : int [ ] arr = new int[ ]{1, 2, 3};
虚拟机栈 : main( )作为一个栈帧 , 压入栈空间中 . 在main( )栈帧中 , 存储着arr变量 . arr记录着数组实体的首地址值 .
堆 : 数组实体存储在堆空间中 .
3.二维数组的使用 (难点)
二维数组 : 一维数组的元素 , 有啥一个唯一数组 , 则构成了二维数组
①数组的声明和初始化
②调用数组指定的元素
③数组的属性 : length , 表示数组的长度
④数组的遍历 : 同上
⑤数组元素的默认初始化值 0 或 false
⑥二维数组的内存解析(难)
4.数组的常用算法(重要)
数值型数组的特征值的计算 : 最大值 , 最小值 , 总和 , 平均值等
数组元素的赋值 . 比如 : 杨辉三角 ; 彩票随机生成数 (6位 : 1-30 ; 不能重复) ; 回形数
数组的复制 , 赋值
数组的反转
数组的扩容 , 缩容 : 先new一个大数组,然后再把之前的数组里的内容放进去
数组的查找 : 二分法
线性查找
二分法查找
数组的排序 :
冒泡排序 : 最简单
快速排序 : 最常用
5.Arrays工具类的使用
熟悉一下内部的常用的方法
toString( ) / sort( ) / binarySearch( )二分法
6.数组中常见的异常
ArrayIdexOutOFBoundsException
NullPointerException
易错的知识点
1.数组有没有length( )这个方法?String有没有length( )这个方法?
数组没有length( ) , 是length属性
String有length( )方法
2.有数组int[ ] arr , 用Java代码将数组元素顺序颠倒
可以两两互换位置
也可以用栈
也可以用StringBuilder(后面会说)