天天看点

java基础day7复习

1.复制数组

赋值操作  array2 = array1;//不会新开辟空间,二者地址相同

使用new会为数组开辟新的空间

2.数组中常见的异常有哪些

 ① 数组下标越界:ArrayExceptionOutOfBoundsException

        //1.数组角标越界的异常

        int[] arr = new int[]{1,2,3,4,5};

        for(int i = 0;i <= arr.length;i++){

            System.out.println(arr[i]);//越界

            }

 ② 空指针异常:NullPointerException

            //2.空指针异常

            int[] arr1 = new int[]{1,2,3};

            arr1 = null;

            System.out .println(arr1[0]);

            //情况二

            int[][] arr2 = new int[4][];

            System.out.println(arr2[0]);//null

            System.out.println(arr2[0][0]);//空指针异常

            //情况三

            String[] arr3 = new String[]{"aa","bb"};

            arr3[0] = null;

            System.out.println(arr3[0].toString());

3.数组的创建与元素赋值

  杨辉三角(二维数组)、回形数(二维数组)、随机生成数给数组赋值

4.针对数值型数组

  求数组元素最大值、最小值、总和、平均数

5.数组的赋值和赋值(见1)

  ① array2 = array1;//将array1保存的数组的地址赋给array2,二者指向堆空间中同一个实体

 ② array2 = new int[array1.length];//通过new的方式,给array2在堆空间中新开辟了数组的空间,讲array1中的元素复制给array2

     for(int i = 0;i < array1.length;i++){

            array2[i] = array[1];

     }

6.数组中指定元素的查找:搜索、检索

  ①  线性查找:

        实现思路:通过遍历方式,逐个查找

        适用性:具有普遍适用性

  ② 二分查找

       实现思路:每次比较中间值,折半方式搜索

       适用性:前提要求数组有序

7.数组的排序

java基础day7复习

衡量排序算法的优劣:时间复杂度、空间复杂度、稳定性

排序分类:内部排序与外部排序(需要借助磁盘)

java基础day7复习

8.Arrays工具类

 ① 定义在 java.uitl包下

 ② Arrays提供了很多操作数组的方法,部分方法的使用:

        int[] arr1 = new int[]{1,2,3,4};

        int[] arr2 = new int[]{1,3,2,4};

        //判断两个数组是否相等

        boolean flag = Arrays.equals(arr1,arr2);

        System.out.println(flag);

        //输出数组信息

        System.out.println(Arrays.toString(arr1));

        //将指定值填充到数组之中

        Arrays.fill(arr1, 3);

        System.out.println(Arrays.toString(arr1));

        //对数组进行排序

        Arrays.sort(arr2);

        System.out.println(Arrays.toString(arr2));;

        //二分查找

        int index = Arrays.binarySearch(arr2, 5);

        if(index >= 0){

            System.out.println(index);

        }else{

            System.out.println("未找到");

        }