1.数组: java.lang.ArrayIndexOutOfBoundsException:5 下标越界异常
java.lang.NullPointerException 空指针异常
arr.length获取数组长度
数组存储的是多个数,数据的操作离不开循环
2数组初始化:int[] arr=new int[]{2,3,4,5};
int[] arr=new int[7];
int[] arr={1,2,3,4};
数组的长度是固定的,数组的内存是连续的
3.数组的Arrays函数
(使用Arrays函数要import java.util.Arrays;)
int[] b=Arrays.copyOf(a,1);//第二个参数为复制指定个数的原数组元素个数到新的数组中,即新数组的长度,优点是不会改变原数组
int[] c=Arrays.copyOfRange(a,1,3);//包括起始下标,不包括结束下标,优点是不会改变原数组
Arrays.sort(数组名);//jdk中已经存在的排序方法,对数组进行排序,会改变原数组
4.排序:选择排序
冒泡排序
插入排序
必须熟练掌握的排序算法:选择排序、冒泡排序
1.选择排序:
依次固定每个下标,让后面所有的数分别和固定下标中的数据依次对比
2.冒泡排序
下标相邻的两两比较
5.查找:
普通方式:一个一个比较
缺点:效率低
二分法:前提:数组是有序的
先找到中间下标的数据,拿着查找的数和这个中间的数比较,如果比他大,则对中间数右边的数组进行二分法查找,反之左边
6.进制转换(部分)
十进制转二进制:数组接收余数
十进制转十六进制:
int num=60;
int n1=num&15;
int n2=num>>>4;
7.数组中的易错点:
1.在定义数组时可能只记住定义数组的类型而忘记长度,数组是事先就要在内存中开辟空间,所以必须在定义时或在程序运行前定义数组的长度(初学者易犯)
2.数组的类型与要插入数组的元素的类型不匹配(我出现过char型的数组要放入String的数据出错,自动类型转换的数据应该不会出现这种错误)