自学Java之day05_Java数组的常见操作

操作数组最容易出现的2个问题

数组越界异常
观察一下代码,回答运行后会出现什么结果。
package Array.use;

public class Demo01ArrayIndexTest {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        // 并不存在3号元素,所以发生异常
        System.out.println(arr[3]);
    }
}

解析:

创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此 我们不能访问数组中不存在的索引,程序运行后,将会抛出 ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
如下图所示
数组空指针异常
观察一下代码,运行后会出现什么结果。
package Array.use;

public class Demo02ArrayNullTest {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        arr = null;
        System.out.println(arr[0]);

    }
}

解析

arr = null 这行代码, 意味着数组变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
如下图所示

数组的遍历

数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。
代码举例
package Array.use;
/*
遍历数组,说的就是对数组当中的每一个元素进行逐一、挨个儿处理。默认的处理方式就是打印输出。
 */
public class Demo04Array {

    public static void main(String[] args) {
        int[] array = {15, 25, 30, 40, 50, 60, 75};
//        int len = array.length; // 长度
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

}

执行结果

数组获取最大值元素

最大值获取:从数组的所有元素中找出最大值。
实现思路:
  1. 定义变量,保存数组0索引上的元素
  2. 遍历数组,获取出数组中的每个元素
  3. 将遍历到的元素和保存数组0索引上值的变量进行比较
  4. 如果数组元素的值大于了变量的值,变量记录住新的值
  5. 数组循环遍历结束,变量保存的就是数组中的最大值 
代码举例
package Array.use;

public class Demo05ArrayMax {

    public static void main(String[] args) {
        int[] arr = {5, 15, 2000, 10000, 100, 4000};
        //定义变量,保存数组中0索引的元素
        int max = arr[0];
        //遍历数组,取出每个元素
        for (int i = 0; i < arr.length; i++) {
            //遍历到的元素和变量max比较
            //如果数组元素大于max
            if (arr[i] > max) {
                //max记录住大值
                max = arr[i];
            }
        }
        System.out.println("数组最大值是: " + max);
    }

}

执行结果

数组作为方法参数和返回值

  • 数组作为方法参数传递,传递的参数是数组内存的地址。
  • 数组作为方法的返回值,返回的是数组的内存地址 

方法的参数类型区别 

总结:

方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.
 

猜你喜欢

转载自www.cnblogs.com/wurengen/p/11565100.html