package day01;
/*
*1.数组相关的概念
* >数组名
* >元素
* >角标,下标,索引
* >数组的长度,
* 3.数组特点:
* 1)本身是有序的
* 2)创建数组对象会在内存中开辟一整块连续的空间
* 3)数组长度一旦确定,就不能修改
* 4)数组本身属于引用数据类型的变量,数组的元素既可以是基本数据类型,也可以是引用数据类型
*
* 4.数组的分类
*   1.按照维数:一维数组,二维数组等
*   2.按照数组元素的类型:基本数据类型元素的数组,引用数据类型元素的数组
*
*
* */
public class Arrey01 {
    public static void main(String[] args) {
//        int[] ids;//声明
//        ids = new int[]{1001,1002,1003};//静态初始化
//        String[] names = new String[5];//动态初始化
//        names[0] = "王龙";
//        names[1] = "王龙";
//        names[2] = "王龙";
//        names[3] = "王龙";
//        names[4] = "王龙";
//        names = new String[4];
//        for (int i = 0; i < names.length; i++) {
//            System.out.println(names[i]);
//        }
//        System.out.println(names.length);
//        System.out.println(ids.length);
//        二维数组
//        取指定位置元素的值
        String arr[][] = new String[3][2];
        int[] arr1[] = new int[][]{{1,2,6,7},{3,4},{2,4}};
//        System.out.println(arr1[1][1]);
////        获取二维数组的长度
//        System.out.println(arr.length);
//        System.out.println(arr[0].length);
        //遍历二维数组
        for (int i = 0; i <arr1.length ; i++) {
            for (int j = 0; j <arr1[i].length ; j++) {
                System.out.print(arr1[i][j] + "  ");
            }
            System.out.println();
        }
        //二维数组的元素的默认初始化值
        int[][] arr3 = new int[4][3];
        System.out.println(arr3[0]);//外层数组  地址值
        System.out.println(arr3[0][0]);//默认值为0  因为声明为int型的
/*
* 总结
       针对于初始化方式一:比如: int[][] arr3 = new int[4][3];
       外层元素的初始化值为:地址值
       内层元素的初始化值为:与一维数组初始化情况相同
*
* */    int sum = 0;
//        int arr5[][] = new int[][]{{3,5,8},{12,9},{7,0,6,4}};
//        for (int i = 0; i < arr5.length; i++) {
//            for (int j = 0; j <arr5[i].length ; j++) {
//                System.out.println(arr5[i][j]);
//                sum+=arr5[i][j];
//            }
//            System.out.println(sum);
//        }
//      杨辉三角练习题
//        int arr6[][] = new int[10][];
//        for (int i = 0; i <arr6.length ; i++) {
//            arr6[i] = new int[i+1];
//            arr6[i][0] = arr6[i][i] = 1;
//            if (i > 1 ) {
//                for (int j = 1; j < arr6[i].length - 1; j++) {
//                    arr6[i][j] = arr6[i-1][j-1] + arr6[i-1][j];
//                }
//            }
//        }
//        for (int i = 0; i < arr6.length; i++) {
//            for (int j = 0; j < arr6[i].length; j++) {
//                System.out.print(arr6[i][j] + "  ");
//            }
//            System.out.println();
//        }
/*
* 数组中常见的算法
*
*   1.数组的元素最大值,最小值
*   2.数组的复制、反转、查找(线性查找、二分法查找)
*   3.数组的赋值
*
* 数组的二分法查找  head = 0  end = arr.length -1
* 数组的线性查找eqall == ***
* */
    }
}