数组
一维数组
1、数组初始化
正确的赋值只有以下两种情况:
1、静态初始化
2、动态初始化
2、数组元素的调用
3、数组的长度和遍历
数组的长度
数组的遍历
4、数组元素的初始化值
char类型数组默认值是ascll码为0的字符,不是 '0’ , ('0'表示的是数字0,其ascll码值是48)
引用数据类型String举例:
输出北京天气不错!
5、数组的内存解析
new String[3]赋给arr1后,就不指向原来的new String[4]了
多维数组
1、二维数组的初始化
一种简写方式,类型推断,需要声明和赋值在一个式子,即int[ ]arr4和{1,2,3,4,5}要写在一起,即int[ ]arr4={1,2,3,4,5},而不能int[ ]arr4,
arr4={1,2,3,4,5}.
赋值就不要有长度,有长度就不要赋值
2、二维数组元素的调用
3、二维数组的长度和遍历
二维数组的长度
二维数组的遍历
4、数组的默认初始化值
示例:
5、二维数组的内存解析
一些练习
x的地址有 [ ,y的地址是 [ [ 。
数组的一些算法
1、数组赋值
此时
改array1就是改array2,
改array2就是改array1。
2、数组的复制、反转、查找
复制
反转
查找-线性查找
查找-二分查找
二分法搜索的前提是起始状态要有序。
3、算法
衡量排序算法的优劣。
内部和外部排序定义
冒泡排序
冒泡过程
程序实现
排序算法性能对比
Arrays工具类的使用
示例:
1、比较相等
2、输出数组信息
3、所有值都赋值为 10
4、对数组进行排序
5、返回要找的数的数组下标,没找到就返回负数,比如-10.
其他方法详见API arrays包。
数组的一些异常情况
1、角标越界
角标不能大于等于5,不能是负的。
2、空指针异常
情况一:
空指针后,通过arr1找不到数组内数据1、2、3、了。
情况二:
因arr2[i]内容是null,故不能找到arr2[i][j]的内容,故为空指针异常。
情况三:
toString方法的前面那个对象arr3[0]是null
小总结