数组概念
- 同一种类型数据的集合。其实数组就是一个容器。
- Java中数组是用来存固定长度的同类元素的。
- 内存给数组分配的都是连续的空间。
- 数组的声明是一个引用,实现是一个存在对内存的对象
数组的声明
- 数组变量的声明:
int[] a
int a[]
- 数组实例的创建
a= new int[4];
a= new int[]{1,2,3};
a={1,2,3};
二维数组
- 二维数组的原理:二维数组的原理其实就是一个存储着数组引用的一维数组(所存的一维数组的引用所指向的数组可以是不规则的,即可以长度不一致)
- 二维数组的定义
int[][] a = new int[3][];
int[][] a = new int[3][3];
int[][] a = new int[][] {{1,2,3},{1,2},{1}};//可以存不规则的数组
int[][] a ={{1,2,3},{1,2},{1}};//上一表达式的简写
数组的常规操作
- 数组遍历:普通for循环或foreach
- 求最大最小平均值
- 数组排序
- Arrays工具类操作:
- String toString(Object[] a):返回数组字符串变现形式;
- void sort(Object[] a):自然顺序升序排序(可排序指定数组范围);
- void sort(Object[] a ,Comparator<? super T> c):按指定规则排序
- void fill(Object[] a ,Object o):用指定元素填满数组(可指定范围)
- void equals(Object[] a ,Object[] b):覆盖的equals
- Object[] copyOf(Object[] a ,int x):复制指定数组,x是指返回的数组的长度(复制指定范围copyOfRange)。
- binarySearch(Object[] a ,Object o):二分查找查找指定元素(可以指定范围);
数组常见异常
- NullPointerException 空指针异常
原因: 引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。 - ArrayIndexOutOfBoundsException 索引值越界。
原因:访问了不存在的索引值。