数组:可以存储多个元素并且多个元素是同一种类型的容器。
数组的定义:数组类型[ ] 数组名; eg int[ ] a;定义了一个int类型的数组变量a
数组类型 数组名[ ]; eg int a[ ];定义了一个int类型 变量a数组
数组的初始化:
1,静态初始化:给定数组中的元素值,数组的长度由系统给定,
2,动态初始化:给定数组的长度,数组中的元素值由系统默认给定。
动态初始化格式:数组类型[] 数组名=new 数据类型[数组长度];eg:int[ ] arr=new int[3];
静态初始化:原始格式:数组类型[ ] 数组名称=new 数组类型[ ] {元素1,元素2,元素3,,,};
eg:int[] arr = new int[]{1,2,3} ;
简写格式:数据类型[ ] 数组名称={元素1,元素2,元素3,,,};
eg:int[] arr = {1,2,3} ;
不可以动静结合,要么给定数组元素要么给定数组长度
获取数组中的元素:通过数组名称获取,格式:数组名称[索引值],数组的索引从0开始,最大的索引等于数组长度-1;
数组中经常出现的异常:ArrayIndexOutOfBoundsException:为数组角标越界异常,出现原因:访问数组中不存在索引值
解决方案:观察数组中到底有多少索引值,为数组长度减一;
NullPointerException: 空指针异常(实际开发中该异常最多) 出现原因:对象为null,而开发者还要去使用对象就会出现该错误,
解决方案:给某个对象进行非空判断,防止程序空指针异常。
int[] arr2 = null ; //arr2对象是空对象
if(arr2!=null) { //给对象做非null判断
System.out.println(arr2[0]);
}
OOM异常:OutOfMemory:内存溢出 Android 解决加载大量图片的问题:图片加载器:ImageLoader等等数组中最值的应用 :定义一个数组,静态初始化求数组中的最大值或者最小值
eg:求取最大值1,定义一个数组, 静态初始化 2,定义 一个参照物,分别和数组中的其他元素进行比较,如果后面的元素大于参照物 ,将后面最大参照物 作为最大值 3,输出
public static void main(String[] args) {
//定义一个数组
int[] arr = {13,98,24,30,10} ;
//定一个参照物,假设参照物就是最大值
int max = arr[0] ;
//从1开始遍历其他元素
for(int x = 1 ; x < arr.length ; x ++) {
//获取每一个元素
//依次和参照物进行比较,如果后面的元素都大于参照物,将后面作为参照物作为最大值
if( arr[x] > max) {
//将arr[x]赋值给max
max = arr[x] ;
}
}
//输出
System.out.println("最大值是:"+max);
System.out.println("------------------------------");
int max2 = max(arr) ;
System.out.println("最大值是:"+max2);
}
/**
* 定一个方法
* 两个明确:
* 1)明确返回值类型: int类型
* 2)明确参数类型:int[] arr
*/
public static int max(int[] arr) {
//定义参照物
int max = arr[0] ;
//遍历其他元素
for(int x = 1 ; x < arr.length ; x ++) {
//获取到每一个元素,分别和参照物进行比较,如果大了,就作为最大值进行继续比较
if(arr[x] > max) {
max = arr[x] ;
}
}
return max ;
}