【JAVA基础】数组(二)

数组索引越界异常(ArrayIndexOutOfBoundsException):

数组的索引编号从0开始,一直到“数组的长度-1”为止。如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常。

原因:索引编号写错了。
解决:修改成为存在的正确索引编号。

public class ArrayDemo03 {
    public static void main(String[] args) {
        int[] array1={1,2,4};
        System.out.println(array1[0]);//1
        System.out.println(array1[3]);//ArrayIndexOutOfBoundsException
    }
}

空指针异常 (NullPointerException)

所有的引用类型变量,都可以赋值为一个null值。但是代表其中什么都没有。

数组必须进行new初始化才能使用其中的元素。如果只是赋值了一个null,没有进行new创建,那么将会发生:空指针异常 NullPointerException

原因:忘了new
解决:补上new

public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] array=null;
        array=new int[]{1,3,4}; //如果没有这句话,就会发生NullPointerException
        System.out.println(array[0]);

    }
}

练习

数组最大值:

public class ArrayDemo05 {
    public static void main(String[] args) {
        int [] array1={1,2,4,5};
        arrayMax(array1);
    }

    public static int arrayMax(int[] array){ //数组作为参数
        int max=array[0];
        for (int i = 1; i < array.length; i++) {
            if (max<array[i]){
                max=array[i];
            }
        }
        System.out.println("最大值为:"+max);
        return max;
    }
}

  

数组反转(Reverse)

public class ArrayDemo06 {
    public static void main(String[] args) {
        int [] array1={4,5,6,2,7,1,3};
        arrayReverse(array1);
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }
    }
 
    public static int[] arrayReverse(int[] array){  //数组作为参数
        for (int min = 0,max=array.length-1; min < max; min++,max--) {  //数组翻转操作,需要满足下角标min<max
            int temp;
            temp=array[min];
            array[min]=array[max];
            array[max]=temp;
        }
        return array; //数组作为返回值
    }
}
原文地址:https://www.cnblogs.com/paulwinflo/p/12827222.html