1、常见的异常
创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此我们不能访问数组中不存在的索引,程序运行后,将会抛出 ArrayIndexOutOfBoundsException 数组越界异常。
数组下标越界异常:
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.println(arr[3]);
}
空指针异常:
arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候 会抛出 NullPointerException 空指针异常。
public static void main(String[] args) {
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);
}
2、常见操作
数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
/*循环中定义变量min=0最小索引 max=arr.length‐1最大索引
min++,max‐‐
*/
for (int min = 0, max = arr.length ‐ 1; min <= max; min++, max‐‐) {
//利用第三方变量完成数组中的元素交换
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp; }// 反转后,遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
获取数组的最大值和最小值及其下标:
public static void main(String[] args) {
int a[] = {190, 230, 33, 290, 789, 765, 498, 210};
//最大
int max = a[0];
int maxindex=0;
//最小
int min = a[0];
int minindex=0;
// 每个数字都和最值比较,如果比最值大或者小,就成为新的最值
for (int i = 1; i < a.length; i++) {
if (a[i] > max) {
max = a[i];
maxindex=i;
}
if (a[i] < min) {
min = a[i];
minindex=i;
}
}
System.out.println(max);
System.out.println(maxindex);
System.out.println(min);
System.out.println(minindex);
}
将数组从小到大排序:
public static void main(String[] args) {
int[] array = { 3, 2, 1, 4, 5 };
Arrays.sort(array);
System.out.println(Arrays.toString(array)); // [1, 2, 3, 4, 5]
}