(一维数组)
数组:可以存储多个元素并且多个元素是 同一种类型的容器
数组的定义:数据类型[] 数组名;
数据类型 数组名[];
举例:
int[] a; 定义了一个int类型的数组变量a
int a[] ; 定义了一个int类型 变量a数组
这两种方式的定义:虽然写法不一样,并且读法不一样,但是表达的效果一样,都是在定义一个数组,推荐使用第一种方式;
数组的初始化:
1)动态初始化: 给数组指定长度,数组中的元素值由系统默认给定
2)静态初始化: 给定数组中元素的值,数组的长度由系统给定;
动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度] ;
举例:
int[] arr = new int[3] ;
没有被初始化的数组是不能使用的
获取数组中的元素:通过数组名称获取格式:
数组名称[索引值],数组的索引值从0开始,最大的索引=数组长度-1
数组中经常会出现的异常:ArrayIndexOutOfBoundsException:数组角标越界异常
出现的原因:访问了数组中不存在的索引值;
解决方案:观察数组中到底有索引值到多少; 数组长度-1
NullPointerException:空指针异常 (在实际开发中该异常是最多的)
出现的原因:对象为null,而开发者还要去使用对象,就会出现问题
解决方案:给某个对象进行非空判断,防止程序程序空指针异常
对于异常:
把从头到尾,将遇见到的异常建立文档,
出现该异常的原因
如何解决异常
OOM异常:OutOfMemory:内存溢出 Android 解决加载大量图片的问题:图片加载器:ImageLoader等等
数组中的应用:
最值:
自定义一个数组,静态初始化,求数组中的最大值或者最小值;
分析: 最大值:1)定义一个数组,静态初始化
2)定义一个参照物,分别和数组中的其他元素进行比较,如果后面的元素都大于参照物,将后面作为参照物作为最大值
3)输出
元素逆序:
分析:
定义一个数组,静态初始化将数组中0索引对应的元素和arr.length-1索引对应的元素进行互换
将1索引对应的元素和arr.length-1-1索引对应的元素进行互换
....
只要保证数组的长度arr.length/2
数组中的元素基本查找法: ----->数值中的元素的查找,查找的是该元素在数组中的索引
扫描二维码关注公众号,回复:
1085330 查看本文章
(二维数组)
二维数组:
数据类型[] [] 数组名 = new 数据类型[m][n] ;
m:代表当前二维数组中有多少个一维数组
n:代表每一个一维数组中的长度
定义的方式还有以下两种情况
数据类型[] 数组名[] = new 数据类型[m][n]
数据类型 数组名[][] = new 数据类型[m][n]
二维数组定义的第二种格式:
数据类型[][] 数组名 = new 数据类型[m][] ;
只给定有m个一维数组,每一个一维数组长度动态给定
二维数组的格式三:
静态初始化
数据类型[][] 数组名称 = {{元素1,元素2,元素3},{....}}
二维数组的遍历:
public static void printArray2(int[][] arr) {
for(int x = 0 ; x < arr.length ; x ++) {
for(int y = 0 ; y < arr[x].length ; y++) {
System.err.print(arr[x][y]+" ");
}
}
}